一、插入操作
方式一
insert into 表名 (列名, ...) values(值1, ...) # 增加一条数据 insert into employees(last_name, salary, age) values('Tom', 1800, 20) # 同时增加多条数据 insert into employees(last_name, salary, age) values('Tom', 1800, 20),('Mack', 2300, 30),('Adam', 3000, 18) # 如果有字段为可空(salary可空) insert into employees(last_name, salary, age) values('Tom', NULL, 20) insert into employees(last_name, age) values('Tom', 20) # 如果是全部字段都有值,可以省略字段名 insert into employees values('Tom', 1800, 20) # 字段名的顺序可以改变 insert into employees(salary, last_name, age) values(1800, 'Tom', 20) # 子查询 insert into employees(last_name, salary, age) select 'Bob', 3200, 24
方式二
insert into 表名 set 列名=值, 列名=值,... insert into employees set last_name='Tom', salary=1800, age=20
- 方式一支持插入多行,方式二不支持
- 方式一支持子查询,方式二不支持
二、修改操作
1.修改单表的记录
update 表名 set 列=新值,... where 筛选条件 # 修改beauty表中姓唐的女神的电话 update beauty set phone=99999 where NAME like '唐%'
2.修改多表的记录
方式一:sql92语法
update 表1 别名, 表2 别名 set 列=新值,... where 连接条件 and 筛选条件 # 修改张无忌的女朋友的手机号为114 update beauty b, boys bo set b.phone=114 where bo.id = b.boyfriend_id and bo.boyName='张无忌'
方式二:sql99语法
update 表1 别名 【连接类型】 JOIN 表2 别名 on 连接条件 set 列=新值 where 筛选条件 # 修改张无忌的女朋友的手机号为114 update beauty b JOIN boys bo on bo.id = b.boyfriend_id set b.phone=114 where bo.boyName='张无忌'
三、删除操作
# 清空表数据,但不会删除表结构 delete from 表名
方式一
1.单表删除
delete from 表名 where 筛选条件 # 删除手机号以9结尾的女神信息 delete from beauty where phone like '%9'
2.多表删除
sql92语法
delete 表1的别名, 表2的别名(删除哪个表写哪个表) from 表1 别名, 表2 别名 where 连接条件 and 筛选条件 # 删除张无忌的女朋友的信息 delete b from boys bo, beauty b where bo.id = b.boyfriend_id and bo.boyName='张无忌'
sql99语法
delete 表1的别名, 表2的别名((删除哪个表写哪个表)) from 表1 别名 【连接类型】 JOIN 表2 别名 on 连接条件 where 筛选条件 # 删除张无忌的女朋友的信息 delete b from boys bo JOIN beauty b on bo.id = b.boyfriend_id where bo.boyName='张无忌'
方式二
# 清空表 truncate table 表名
- delete可以加where条件,truncate不能加
- truncate删除,效率会高
- 使用delete删除后,再增加数据从断点开始,使用truncate删除,再插入数据从1开始
- delete有返回值(几行受影响),truncate没有返回值
- truncate删除不可以回滚,delete删除可以回滚