八:数据的增删改
插入:insert
修改:update
删除:delete
# 一:插入语句
语法:
insert into 表名 (列名....) value (值1.....)
或者 inset into 表名 set 列名=值,列名=值;
两种方式的区别:
方式一支持插入多行,方式二不支持
方式一支持子查询,方式二不支持
# 二:修改语句
2.1)修改单表记录
update 表名 set 列=新值,列=新值··· where 筛选条件;
UPDATE salaries s JOIN employees ON s.`emp_no`=employees.`emp_no` SET s.`salary`=0,employees.`first_name`='hello mysql' WHERE s.`salary`=75001;
2.2)修改多表记录
update 表1 别名
inner/left/right join 表2 别名 on 连接条件
set 列=值
where 筛选条件;
# 三:删除语句(delete 删除有返回值,truncate没有返回值,truncate删除不能回滚,delete删除可以回滚)
3.1)单表删除
delete from 表名 where 筛选条件
truncate table 表名;#truncate后面不能加筛选条件, 删除所有数据,删库记得跑路
3.2)多表删除
sql99语法:
delete 表1的别名,表二的别名
from 表1 别名
inner / left / right join 表2别名 on 连接条件
where 筛选条件;
DELETE s,e FROM salaries AS s INNER JOIN employees AS e ON s.emp_no = e.emp_no WHERE s.salary = 0 ;
面试题:
两种删除方式的区别
1. 自增长列:truncate删除后,如果在插入,标识从1开始
delete删除后,如果在插入,标识从断点开始
2.delete可以添加筛选条件truncate不可以
3.truncate效率较高
4.truncate没有返回值
delete可以返回收影响的行数
5.truncate不可以回滚