网站首页 > 技术文章 正文
一、DML 简介
DML(Data Manipulation Language)语句,即数据操作语句,用于操作数据库对象中所包含的数据。
常用关键字包括:INSERT(添加数据语句)、UPDATE(更新数据语句)、DELETE(删除数据语句)
二、INSERT 命令
INSERT INTO 表名[(字段1,字段2,字段3,...)] VALUES ('值1','值2','值3',...)
字段或值之间用英文逗号隔开
"字段1,字段2…"该部分可省略(省略代表所有字段都加),但添加的值必须与表结构数据列顺序相对应,且数量一致
可同时插入多条数据,VALUES后面用英文逗号隔开,每个()代表一条数据
三、UPDATE 命令
UPDATE 表名 SET column_name =value[,column_name2 =value2,......] [WHERE condition];
- column_name 为要更改的数据列
- value 为修改后的数据,可以为变量、具体值、表达式或者嵌套的SELECT结果
- condition 为筛选条件,如不指定则修改该表的所有列数据
- WHERE 条件子包:简单理解为有条件地从表中筛选数据
四、DELETE 命令
DELETE FROM 表名 [WHERE condition];
- condition为筛选条件,如不指定则删除该表的所有列数据
- 当使用不带WHERE条件的DELETE删除表全部数据,重新添加新数据时,自增的当前值依然从原来基础上进行
- (原因:DELETE删除数据时,一行一行删除,并记录日志)
- 同样使用DELETE清空表数据,重启mySQL服务后,InnoDB的表自增列从初始值重新计算,而MyISAM类型的表,自增列从上一个自增数据基础上继续。(原因:InnoDB主键自增量当前最大值存在内存中,而MyISAM是存在文件里的)
五、TRUNCATE 命令
TRUNCATE [TABLE] table_name
- 用于完全清空表数据,但表结构、索引、约束等不变
- 用TRUNCATE删除表全部数据,重新增加新数据时,自增值恢复到初始值重新开始 (原因:TRUNCATE删除数据一下全删,不记录日志)
RUNCATE 和DELETE 相同点:
- 都能删除数据,不删除表结构,但truncate速度更快
RUNCATE 和DELETE 不同点:
- 使用TRUNCATE TABLE 重新设置AUTO_INCREMENT计数器
- 使用TRUNCATE TABLE 不会对事务有影响
猜你喜欢
- 2025-07-27 MySQL消息系统铁三角:去重保序+死信队列破解重复消费与消息黑洞
- 2025-07-27 吃透3大Binlog模式,MySQL数据零丢失
- 2025-07-27 告别繁琐!MySQL数据搬家,这几招让你轻松搞定!
- 2025-07-27 create index a on t(ct DESC)mysql8索引可以指定排序方式提高性能
- 2025-07-27 MySQL基础篇:DQL数据查询操作(mysql查询教程)
- 2025-07-27 MySQL 生产流程监控咋选库?这俩常用工具手把手教你
- 2025-07-27 MySQL--多表连接查询(mysql多表连接查询时的关键字)
- 2025-07-27 MySQL--索引(mysql索引是什么)
- 2025-07-27 MySql:DQL 数据查询语句盘点(mysql查询语句菜鸟教程)
- 2025-07-27 MySQL大量脏数据,如何只保留最新的一条?
- 1518℃桌面软件开发新体验!用 Blazor Hybrid 打造简洁高效的视频处理工具
- 596℃Dify工具使用全场景:dify-sandbox沙盒的原理(源码篇·第2期)
- 521℃MySQL service启动脚本浅析(r12笔记第59天)
- 489℃服务器异常重启,导致mysql启动失败,问题解决过程记录
- 489℃启用MySQL查询缓存(mysql8.0查询缓存)
- 477℃「赵强老师」MySQL的闪回(赵强iso是哪个大学毕业的)
- 456℃mysql服务怎么启动和关闭?(mysql服务怎么启动和关闭)
- 454℃MySQL server PID file could not be found!失败
- 最近发表
- 标签列表
-
- cmd/c (90)
- c++中::是什么意思 (84)
- 标签用于 (71)
- 主键只能有一个吗 (77)
- c#console.writeline不显示 (95)
- pythoncase语句 (88)
- es6includes (74)
- sqlset (76)
- windowsscripthost (69)
- apt-getinstall-y (86)
- node_modules怎么生成 (76)
- c++int转char (75)
- static函数和普通函数 (76)
- el-date-picker开始日期早于结束日期 (70)
- js判断是否是json字符串 (67)
- checkout-b (67)
- c语言min函数头文件 (68)
- asynccallback (71)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)