DML语言基础(三)

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删除可以回滚
原文地址:https://www.cnblogs.com/akiz/p/11179048.html