mysql数据操作语言DML

插入insert

插入方式1

语法: insert into 表名(列名,....) values(值1,....)

说明:
1.插入的值的类型要与列的类型一致或兼容
2.可以为null的值:①列写了值为NULL②列值都不写
3.列和值的个数需要对应
4.可以省略列名,默认所有列,列的顺序和表中列的顺序一致

int类型写成了字符型,会自动转换为int类型

插入方式2
语法:
insert into 表名
set 列名=值,列名=值...

两种方式的区别
1.方式一支持一次性插入多行values(),(),..
2.方式一支持子查询,方式二不支持,insert into.. select

修改update

修改单表的记录

语法:
update 表名
set 列=新值,列=新值..
where 筛选条件;

修改多表的记录

sql92语法只支持内联:
update 表1 别名,表2 别名
set 列=值,...
where 连接条件
and 筛选条件

sql99语法:
update 表1 别名,
inner|left|right join 表2 别名
on 连接条件 (这相当于连接成了新表)
set 列=值...
where 筛选条件

删除delete

delete

单表记录的删除

语法:delete from 表名 【where 筛选条件|limit 条目数】
说明:删除整行

多表记录的删除

sql92语法
delete 表1别名,表2别名(需要删除的表)
from 表1 别名,表2 别名
where 连接条件
and 筛选条件

sql99语法
delete 表1别名,表2别名(需要删除的表)
from 表1 别名
inner|left|right join 表2 别名
on 连接条件
where 筛选条件

truncate

语法:truncate table 表名;
说明:清空整个表

对比

区别 DELETE FROM TRUNCATE TABLE
删除的表中有自增长列 插入数据从自增长列的断点开始 truncate从1开始
是否可以回滚 ×
返回值 有返回值(受影响的行数) 没有返回值
是否可以加where条件(删除部分数据) √(不加where就是删除所有数据 ) ×

DDL和DML

区别 DDL DML
具体操作 create、表的管理 增删(delete)改
是否可以回滚 操作一旦执行,不可回滚 默认情况下,一旦执行,不可回滚
如果在执行DML之前,修改默认提交行为SET autocommit = FALSE,则执行的DML操作就可以回滚
posted @ 2021-05-17 16:01  rananie  阅读(46)  评论(0编辑  收藏  举报