为了账号安全,请及时绑定邮箱和手机立即绑定

MySQL 单表数据行操作

2019.12.03 09:15 320浏览

1 单表数据的插入 insert into  

1.1 插入: 整条/部分数据的插入 SQL语法:

insert into tab_name(column_list) values(value_list); 

/* column_list字段列表; value_list 数值列表; 列表数值以逗号(,)隔开 */

/* column_list 可选参数 */

1

2

3

① 完整插入时,column_list全字段 +value_list对应全数据; 示例:


insert into bookclass(c_id, c_name, parent_id) values(1, '计算机', 0);

1

② 部分插入时,column_list部分列 +value_list对应数值; (未填写的系统自动默认填充)示例:


insert into readerinfo(card_id, name, tel) values('210210199901011111', '张飞' ,'13566661111');

1

③ 省略column_list时,value_list需全数据; 缺省数据以null代替,系统自动转化 null/default; 示例:


insert into readerinfo values('210210199901011111', '张飞', null, null,'13566661111', null);

1

1.2 插入: 多条数据的插入 SQL语法:

insert into tab_name(column_list) values(value_list_1), ..., (value_list_n);

1

插入多条数据时,指定多个 value_list数值列表,并以(,)逗号隔开, 示例:


insert into bookclass(c_id,c_name,parent_id) 

values(3,'编程语言',1), (4,'数据库',1), (5,'儿科学',2); /* 逗号(,)隔开 各value_list数值列表*/

1

2

1.3 插入: select查询结果,SQL语法:

insert into tab_name(column_list) select(column_list2) from tab_name2 where(condition);

1

从 tab_name2表以condition条件查询 column_list2数据; 把结果以column_list列 插入tab_name表, 如:


insert into bookclass select * from bookclass2 where id>5;

/* 从bookclass2表的id>5的所有数据, 插入bookclass表 */

1

2

2 单表数据的更新 update 语法:

update tab_name set expresstion where(condition);

1

① expresstion是column=value表达式; 多个表达式时,以逗号(,)隔开;

② where指定更新行; 缺省 where(condition),则 更新所有行


SELECT price FROM bookinfo WHERE book_name = 'Java编程思想'; 

/* 查出price价格 */

UPDATE readerinfo SET balance = balance - price * 0.05

WHERE card_id = '210210199901011111';

/* 余额balance - 单价price*0.05 即得到理想结果 */

1

2

3

4

5

3 单表数据的删除 delete 语法:

delete from tab_name where(condition);

1

where指定删除行; 缺省 where(condition),则 删除所有行

注意:在MySQL Workbench中删除时,可能会遇到保护状态而报错; 需要更改 references设置


4 单表数据的查询 select

select [distinct] column_list from tab_name where condition

group by group_columns [having condition2]

order by column_1 [desc column_2 desc]

limit [position_num,] rows_num;

1

2

3

4

select 查询; group by 分组; order by 排序; limit 限量显示


4.1 查询select 语法:

select [distinct] columns from tab_name where(condition);

1

① column_list 列表; 星号(*)通配符,查询所有列;

② distinct 可选: 去重复记录;

③ from tab_name 可选: 查询范围/方向;

④ where(condition) 可选: 查询条件; 注意 is [not] null的使用

示例代码:


select class_name from bookclass;

/* 查询单列: 查询bookinfo表,显示class_name */

select class_id, class_name from bookclass;

/* 查询多列: 查询bookinfo表,显示class_id, class_name两列 */


select press from bookinfo;

/* 查询bookinfo表,显示press */

select distinct press from bookinfo;

/* 查询bookinfo表,显示press去重复后数据 */

1

2

3

4

5

6

7

8

9

4.2 分组 group by 语法:

group by group_columns [having condition];

1

① group by 常与聚合函数 MAX()/ MIN()/ SUM()/ AVG()/ COUNT()联合使用;

② [having condition]可选: 过滤分组条件; 示例代码:


select count(*) from readerinfo where sex='男';

/* 查询bookinfo表,显示count(*)的'男'读者数据 */

select sex, count(*) from readerinfo group by sex;

/* 查询bookinfo表,显示sex,count(*); 以sex分组 */

select sex from readerinfo group by sex having count(sex)>2;

/* 查询bookinfo表,显示sex; 并以sex分组,筛选sex数量>2的组 */

1

2

3

4

5

6

4.3 排序: 单列 order by

order by column [desc]; /* 单列排序 */

order by column [desc] column_2 [desc]; /* 多列排序 */

1

2

省略desc降序, 即默认asc升序; 示例代码:


select * from bookinfo order by price; 

/* 查询bookinfo表,显示所有列,以price的asc升序(默认) */


select * from bookinfo order by price,store; 

/* 查询bookinfo表,显示所有列,以price的asc升序(默认);同价时,再以store的asc升序 */

select * from bookinfo order by price,store desc;

/* 查询bookinfo表,显示所有列,以price的asc升序(默认);同价时,再以store的desc降序 */

1

2

3

4

5

6

7

4.4 限量显示: limit

limit [position_num,] rows_num; /* 语法1 */

limit rows_num offset position_num; /* 语法2 */

1

2

rows_num 显示行数; position_num起始位置(默认0,可选参); 示例代码:


select * from bookinfo limit 3;

/* 查询bookinfo表,显示所有列; 限3行 */

select * from bookinfo limit 1,3;

/* 查询bookinfo表,显示所有列; 序1起,显示3行 */

select * from bookinfo limit 3 offset 1


点击查看更多内容
0人点赞

若觉得本文不错,就分享一下吧!

评论

相关文章推荐

正在加载中
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消