1. DML语言(增删改)
(1) insert插入
语法
intsert into 表名(列1,列2,...)
values (值1,值,...),
values (值1,值,...),
values (值1,值,...),
...
;
insert into 表名
set 列名=值,列名=值,....;
对比:
第一种方式
支持多行插入
支持子查询(可以省略values)
注意
- 类型一致
- 字符型用单引号
- 日期用单引号
- 空用NULL
- 顺序可以颠倒
- 列值数量上一定要匹配
- 省略列名(括号也省略掉),默认为全部
(2) update更新
语法
update 表名
set 列=新值,列=新值,...
where ... ;
多表修改*
sql92:
update 表名 别名,表名 别名
set 列=新值,列=新值,...
where 连接条件
and 筛选条件;
sql99:
update 表名 别名
inner|left|right join 表名 别名
on 连接条件
set 列=新值,列=新值,...
where ...;
(3) delete删除
语法
delete from 表名 where 条件;
清空表数据:
truncate table 表名;
对比:
delete可以加where
delete效率低
自增长列从断点开始,truncate从1开始
delete有返回值,truncate没有
truncate删除不能回滚,delete可以回滚
多表删除*
sql92:
delete 别名1,别名2
from 表名1 别名1,表名2 别名2
where 连接条件
and 筛选条件;
sql99:
delete 别名1 别名2
from 表名1 别名1
inner|left|right join 表名2 别名2
on 连接条件
where 筛选条件;
事务中的删除操作
truncate删除不能回滚,delete可以回滚