DML数据操作语言
时间:2021-08-07
本文章向大家介绍DML数据操作语言,主要包括DML数据操作语言使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
DML(Data Manipulation Language):数据操作语言,用来定义数据库记录(数据); INSERT、 UPDATE、 DELETE
DML是对表中的数据进行增、删、改的操作。
1、INSERT语句
用于向表中插入新记录
-
语法:
- INSERT INTO table_name VALUES (value1,value2,value3,...) # 无需指定列名可以插入多行VALUES
- INSERT INTO table_name (column1,,column2,column3,...) VALUES (value1,value2,value3,...) # 需要指定插入的列名
-
示例
# 无需指定列名 mysql> insert into user values (1,"张三",25,"男"); Query OK, 1 row affected (0.00 sec) # 查询数据 mysql> select * from user; +------+--------+------+--------+ | id | name | age | gender | +------+--------+------+--------+ | 1 | 张三 | 25 | 男 | +------+--------+------+--------+ 1 row in set (0.01 sec) # 插入多条数据 mysql> insert into user values (3,"赵武",25,"男"),(4,"小六",20,"男"); Query OK, 2 rows affected (0.00 sec) Records: 2 Duplicates: 0 Warnings: 0 mysql> select * from user; +------+--------+------+--------+ | id | name | age | gender | +------+--------+------+--------+ | 1 | 张三 | 25 | 女 | | 2 | 李四 | 30 | 女 | | 3 | 赵武 | 25 | 男 | | 4 | 小六 | 20 | 男 | +------+--------+------+--------+ 4 rows in set (0.00 sec) # 指定具体列名 mysql> insert into user (id,name) values (2,"李四"); Query OK, 1 row affected (0.00 sec) # 查询数据 mysql> select * from user; +------+--------+------+--------+ | id | name | age | gender | +------+--------+------+--------+ | 1 | 张三 | 25 | 男 | | 2 | 李四 | NULL | NULL | +------+--------+------+--------+ 2 rows in set (0.00 sec)
2、UPDATE语句
用于更新表中的记录
-
语法
- UPDATE table_name SET column1=value1,column2=value2,...
- UPDATE table_name SET column1=value1,column2=value2,... WHERE some_column=some_value
-
示例
# 无条件修改所有数据 mysql> update user set gender="女"; Query OK, 2 rows affected (0.00 sec) Rows matched: 2 Changed: 2 Warnings: 0 mysql> select * from user; +------+--------+------+--------+ | id | name | age | gender | +------+--------+------+--------+ | 1 | 张三 | 25 | 女 | | 2 | 李四 | NULL | 女 | +------+--------+------+--------+ 2 rows in set (0.00 sec) # 带条件修改数据 mysql> update user set age=30 where id=2; Query OK, 1 row affected (0.01 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql> select * from user; +------+--------+------+--------+ | id | name | age | gender | +------+--------+------+--------+ | 1 | 张三 | 25 | 女 | | 2 | 李四 | 30 | 女 | +------+--------+------+--------+ 2 rows in set (0.01 sec)
3、DELETE语句
用于删除表中的记录
-
语法
- DELETE FROM table_name # 删除表中所有数据
- DELETE FROM table_name WHERE column=value # 根据条件删除
mysql> delete from user where name="赵武"; Query OK, 1 row affected (0.01 sec) mysql> select * from user; +------+--------+------+--------+ | id | name | age | gender | +------+--------+------+--------+ | 1 | 张三 | 25 | 女 | | 2 | 李四 | 30 | 女 | | 4 | 小六 | 20 | 男 | +------+--------+------+--------+ 3 rows in set (0.00 sec)
4、TRUNCATE语句
truncate的作用是清空表或者说是截断表,只能作用于表
-
语法
- truncate table tab_name #删除数据,并保留表结构,又会自动缩减数据文件的大小
- truncate tab_name
-
truncate与drop,delete的对比
- truncate与drop是DDL语句,执行后无法回滚;delete是DML语句,可回滚。
- truncate只能作用于表;delete,drop可作用于表、视图等。
- truncate会清空表中的所有行,但表结构及其约束、索引等保持不变;drop会删除表的结构及其所依赖的约束、索引等。
- truncate会重置表的自增值;delete不会。
- truncate不会激活与表有关的删除触发器;delete可以。
- truncate后会使表和索引所占用的空间会恢复到初始大小;delete操作不会减少表或索引所占用的空间,drop语句将表所占用的空间全释放掉。
-
truncate使用场景及注意事项
表数据完全不需要时可以用truncate。如果想删除部分数据用delete,注意带上where子句;如果想删除表,当然用drop;如果想保留表而将所有数据删除且和事务无关,用truncate即可;如果和事务有关,或者想触发trigger,还是用delete;如果是整理表内部的碎片,可以用truncate然后再重新插入数据。
- truncate无法通过binlog回滚。
- truncate会清空所有数据且执行速度很快。
- truncate不能对有外键约束引用的表使用。
- 执行truncate需要drop权限,不建议给账号drop权限。
- 执行truncate前一定要再三检查确认,最好提前备份下表数据。
原文地址:https://www.cnblogs.com/jiangguoyou/p/15111754.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- codeblocks编译调试C语言二级指针小记
- 二级指针的操作及理解、演示
- 设计之禅——解释器模式(译文)
- 设计之禅——中介者模式
- 设计之禅——备忘录模式
- 设计之禅——访问者模式
- 在scite编辑器中使用astyle格式化c代码
- 简单的51单片机多任务操作系统(C51)
- 使用KEIL C51实现的简单合作式多任务操作系统内核
- Zookeeper——分布式一致性协议及Zookeeper Leader选举原理
- 使用KEIL C51实现的简单合作式多任务操作系统内核(单片机实现版本)
- Zookeeper——基本使用以及应用场景(手写实现分布式锁和rpc框架)
- 函数指针数组指针+结构体数组
- Zookeeper——Watcher原理详解
- 51多任务系统,可以运行