DML语言的意思就是数据操纵语言,在我们的数据库中就是我们的增、删、改的操作。下面就分别介绍MySQL中的DML语言的语法。
一、增
语法1:insert into 表名(字段名,....) values(值,......)
语法2:insert into 表名 set 字段1 = 值,字段2 = 值,.....
忽略插入:insert or ignore into 表名() values()
特点:1、值的类型要与字段的类型要一致或兼容
2、字段的个数和顺序可以自定义,但需要保证值与字段的一一对应
3、插入null值,可以字段和值同时忽略,也可以在值上使用null
4、字段名可以省略,默认表中的所有字段
两者语法的区别:
1、语法1可以一次插入多行,insert into 表名(字段名,....) values(值,......),(值,....),()
2、语法1支持子查询,inset into 表名 查询语句
二、改
1、修改单表
语法:update 表名 set 字段1 = 值,字段2 = 值 【where 筛选条件】
2、修改多表
语法:updata 表1 别名 left | right | inner join 表2 别名
on 连接条件
set 字段1 = 值,字段2 = 值,....
【where 筛选条件】
三、删
方式1:delete
1、删除单表的记录
语法:delete from 表名 【where 筛选条件】【limit】
2、级联删除
语法:delete 别名1,别名2 from 表1 别名1
inner | left | right join 表2 别名2
on 连接条件
【where 筛选条件】【limit】
方式2:truncate
语法:truncate table 表名
两种方式的区别:
1、truncate 删除后,如果插入新值,标识列从1开始,delete则会从断点开始
2、delete可以添加筛选条件,truncate不可用
3、truncate效率比delete高些
4、truncate没有返回值,delete可以返回受影响的行数
5、truncate不可用回滚,delete可以回滚