MySQL数据操纵:DML详解

0 下载量 130 浏览量 更新于2024-08-30 收藏 232KB PDF 举报
"MySQL之DML语言" MySQL中的DML(Data Manipulation Language)是用于操作数据库中数据的语言,包括插入(Insert)、修改(Update)和删除(Delete)等操作。这些语句通常会组成事务,确保数据库的一致性和完整性。 **插入(Insert)** 插入数据到表中有两种主要方式: 1. 方式一: 语法:`insert into 表名(字段名,…) values(值,…);` - 插入的数据值应与字段类型匹配或兼容。 - 字段数量和顺序不必与表定义完全一致,但必须保证值与字段一一对应。 - 可以通过省略字段和值或指定字段并用`null`来插入`NULL`值。 - 字段和值的个数必须完全相同,除非省略所有字段,此时将默认插入所有列。 2. 方式二: 语法:`insert into 表名 set 字段=值,字段=值,…;` - 这种方式不支持一次插入多行,也不支持子查询。 - 但是,它提供了一种更直观的方式来设置每个字段的值。 **插入的扩展**: - 方式一支持一次插入多行,例如:`insert into 表名 [(字段名, …)] values (值,…),(值,…),…;` - 也支持通过子查询插入数据:`insert into 表名 查询语句;` **修改(Update)** - 单表记录修改: 语法:`update 表名 set 字段=值,字段=值 [where 筛选条件];` - 多表记录修改: 结合JOIN操作,如`left|right|inner join`,更新多个关联表的记录。 **删除(Delete)** - 单表记录删除: 语法:`delete from 表名 [where 筛选条件] [limit 条目数];` - 级联删除: 使用JOIN操作删除多表关联记录。 - 另一种删除方式是`truncate`: 语法:`truncate table 表名` `truncate`与`delete`的主要区别: - `truncate`后,自动重置标识列从1开始;而`delete`后,标识列从断点开始。 - `delete`可添加筛选条件,`truncate`则不行。 - `truncate`效率更高,因为它不记录日志。 - `truncate`无返回值,`delete`可返回受影响的行数。 - `delete`可以回滚(在事务中),`truncate`则不能。 了解这些基本的DML操作对于日常的数据库维护和管理至关重要。在实际应用中,确保对这些语句的使用有深入理解,并注意它们可能对数据库性能和数据安全产生的影响。在进行任何修改前,记得备份重要数据,以免造成不可逆的损失。