什么是DML和DDL

什么是DML和DDL

DML(Data Manipulation Language)数据操纵语言命令使用户能够查询数据库以及操作已有数据库中的数据。如insert,delete,update,select等都是DML.
DDL语句用语定义和管理数据库中的对象,如Create,Alter和Drop.
DDL操作是隐性提交的!不能rollback 

### DMLDDL的区别与用途 数据库中的操作语言可以分为两大类:**DML(Data Manipulation Language,数据操作语言)****DDL(Data Definition Language,数据定义语言)**。它们在数据库中的作用、语法使用场景都有显著区别。 #### DML(数据操作语言DML 主要用于对数据库中的数据进行操作,包括插入、更新、删除等操作。这些操作通常影响的是表中的数据记录,而不是表结构或数据库结构本身。 - **主要命令**:`INSERT`, `UPDATE`, `DELETE`。 - **事务控制**:DML 操作可以手动控制事务的提交回滚,这意味着可以在执行多个 DML 操作后,根据需要选择提交或回滚事务[^2]。 - **用途**: - `INSERT`:向表中插入新的数据记录。 - `UPDATE`:修改表中已有的数据记录。 - `DELETE`:删除表中的数据记录。 例如,以下是一个使用 `INSERT` 插入数据的示例: ```sql INSERT INTO student (name, age, address) VALUES ('张三', 20, '北京市'); ``` #### DDL(数据定义语言DDL 主要用于定义数据库的结构,包括创建、修改删除数据库对象(如表、索引、视图等)。这些操作通常影响的是数据库的元数据,而不是表中的具体数据。 - **主要命令**:`CREATE`, `ALTER`, `DROP`。 - **事务控制**:DDL 操作是隐性提交的,不能通过 `ROLLBACK` 回滚[^2]。 - **用途**: - `CREATE`:创建新的数据库对象,如表、索引、视图等。 - `ALTER`:修改已存在的数据库对象的结构。 - `DROP`:删除数据库对象。 例如,以下是一个使用 `CREATE` 创建表的示例: ```sql CREATE TABLE student ( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(20), age INT, address VARCHAR(30) ); ``` #### DMLDDL的主要区别 1. **操作对象**: - DML 操作的对象是数据库中的数据记录。 - DDL 操作的对象是数据库的结构对象。 2. **事务控制**: - DML 操作可以通过 `BEGIN`, `COMMIT`, `ROLLBACK` 等命令进行事务控制。 - DDL 操作是隐性提交的,不能通过 `ROLLBACK` 回滚。 3. **使用场景**: - DML 用于日常的数据维护操作,如插入新数据、更新现有数据、删除不需要的数据等。 - DDL 用于数据库的设计结构调整,如创建新表、修改表结构、删除不再需要的对象等。 4. **性能影响**: - DML 操作通常对数据库的性能影响较小,因为它们只涉及数据的读取写入。 - DDL 操作可能会对数据库的性能产生较大影响,尤其是在大规模数据库中,因为它们涉及结构的更改。 #### 数据库操作语言的分类 除了 DML DDL数据库操作语言还包括其他几种类型: - **DQL(Data Query Language,数据查询语言)**:用于查询数据库中的数据。主要命令是 `SELECT`。 - **DCL(Data Control Language,数据控制语言)**:用于控制数据库的访问权限。主要命令是 `GRANT` `REVOKE`。 - **TCL(Transaction Control Language,事务控制语言)**:用于管理事务。主要命令是 `COMMIT`, `ROLLBACK`, `SAVEPOINT` 等。 例如,以下是一个使用 `SELECT` 查询数据的示例: ```sql SELECT * FROM student; ``` #### 总结 DML DDL数据库操作语言的重要组成部分,分别用于数据的操作结构的定义。理解它们的区别用途对于数据库的设计管理至关重要。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值