mysql数据操作语言DML

本文详细讲解了SQL的插入(insert)、更新(update)、删除(delete)和删除(truncate)操作,以及DDL(数据定义语言)与DML(数据操作语言)的区别。涵盖了单表和多表操作,以及不同语法的使用技巧和注意事项,适合SQL初学者和进阶者参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

插入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 FROMTRUNCATE TABLE
删除的表中有自增长列插入数据从自增长列的断点开始truncate从1开始
是否可以回滚×
返回值有返回值(受影响的行数)没有返回值
是否可以加where条件(删除部分数据)√(不加where就是删除所有数据 )×

DDL和DML

区别DDLDML
具体操作create、表的管理增删(delete)改
是否可以回滚操作一旦执行,不可回滚默认情况下,一旦执行,不可回滚
如果在执行DML之前,修改默认提交行为SET autocommit = FALSE,则执行的DML操作就可以回滚
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值