DML语言
插入
语法:
方式一
insert into 表名(字段名,...)
values(值1,...);
方式二
insert into 表名(字段名,...)
set 字段=新值,字段=新值
方式三
insert into 表名(字段名,...)
select 查询字段 from 表名
特点:
1、要求值的类型和字段的类型要一致或兼容
2、字段的个数和顺序不一定与原始表中的字段个数和顺序一致
但必须保证值和字段一一对应
3、假如表中有可以为null的字段,注意可以通过以下两种方式插入null值
①字段和值都省略
②字段写上,值使用null
4、字段和值的个数必须一致
5、字段名可以省略,默认所有列
修改
修改单表语法:
update 表名 set 字段=新值,字段=新值
【where 条件】
修改多表语法:
sql92语法:
update 表1 别名1,表2 别名2
set 字段=新值,字段=新值
where 连接条件
and 筛选条件
sql99语法:
update 表1 别名
left|right|inner join 表2 别名
on 连接条件
set 字段=值,字段=值
【where 筛选条件】;
删除
方式1:delete语句
单表的删除: ★
delete from 表名 【where 筛选条件】
多表的删除:
delete 别名1,别名2
from 表1 别名1,表2 别名2
where 连接条件
and 筛选条件;
delete 别名1,别名2 from 表1 别名
inner|left|right join 表2 别名
on 连接条件
【where 筛选条件】
方式2:truncate语句
truncate table 表名
两种方式的区别【面试题】
truncate不能加where条件 | delete可以加where条件 |
---|---|
truncate的效率高一丢丢 | |
truncate 删除带自增长的列的表后,如果再插入数据,数据从1开始 | delete 删除带自增长列的表后,如果再插入数据,数据从上一次的断点处开始 |
truncate删除不能回滚 | delete删除可以回滚 |