9 MySQL 单表数据行操作

1 单表数据的插入 insert into

1.1 插入: 整条/部分数据的插入 SQL语法:
insert into tab_name(column_list) values(value_list); 
/* column_list字段列表; value_list 数值列表; 列表数值以逗号(,)隔开 */
/* column_list 可选参数 */

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

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

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

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

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

insert into readerinfo values('210210199901011111', '张飞', null, null,'13566661111', null);
1.2 插入: 多条数据的插入 SQL语法:
insert into tab_name(column_list) values(value_list_1), ..., (value_list_n);

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

insert into bookclass(c_id,c_name,parent_id) 
values(3,'编程语言',1), (4,'数据库',1), (5,'儿科学',2); /* 逗号(,)隔开 各value_list数值列表*/
1.3 插入: select查询结果,SQL语法:
insert into tab_name(column_list) select(column_list2) from tab_name2 where(condition);

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

insert into bookclass select * from bookclass2 where id>5;
/* 从bookclass2表的id>5的所有数据, 插入bookclass表 */

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

update tab_name set expresstion where(condition);

① 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 即得到理想结果 */

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

delete from tab_name where(condition);

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;

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

4.1 查询select 语法:
select [distinct] columns from tab_name where(condition);

① 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去重复后数据 */
4.2 分组 group by 语法:
group by group_columns [having condition];

① 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的组 */
4.3 排序: 单列 order by
order by column [desc];					/* 单列排序 */
order by column [desc] column_2 [desc];	/* 多列排序 */

省略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降序 */
4.4 限量显示: limit
limit [position_num,] rows_num;		/* 语法1 */
limit rows_num offset position_num;	/* 语法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;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值