数据库中DDL和DML的区别
任何处理数据库的人都必须理解DDL和DML命令之间的区别,因为它会影响数据如何存储、访问和修改。
DDL是一组用于指定数据库结构的命令。这些命令可用于创建、修改和删除数据库对象,包括表、视图、索引和约束。DDL语句指定数据的组织和访问方式,而不是修改存储在数据库中的数据。
另一方面,DML是一组用于处理存储在数据库中的数据的命令。这些命令可用于插入、更新、删除和检索数据库中的数据。DML语句修改存储在数据库中的数据,而不是数据库的结构。
什么是DDL命令?
DDL(数据定义语言)是一组用于指定数据库结构的命令。DDL语句用于创建、修改和删除数据库对象,包括表、视图、索引和约束。这些语句指定数据的组织和访问方式,而不是操作存储在数据库中的数据。
例如,DDL语句包括:
CREATE TABLE − 用于在数据库中创建一个新表。
ALTER TABLE − 用于修改数据库中现有表的结构。
DROP TABLE − 用于从数据库中删除表及其所有数据。
CREATE INDEX − 用于在一个或多个表的列上创建索引。
CREATE VIEW − 用于基于查询结果创建虚拟表。
数据库管理员或开发人员在数据库设计和维护期间经常执行DDL语句。这些语句对于确保数据库结构清晰且适合有效的数据存储和检索至关重要。
DDL命令的用途
以下是DDL命令的用途:
创建表 − 使用CREATE TABLE等DDL命令向数据库添加新表。表指定将存储在数据库中的数据的列和数据类型。
修改表 − 使用ALTER TABLE等DDL语句修改现有表的结构。例如,您可以更改列的数据类型、添加约束或向表中添加新列。
删除表 − 使用DROP TABLE等DDL命令从数据库中删除表。此操作还删除表中的所有数据。
创建索引 − 使用CREATE INDEX等DDL语句在一个或多个表的列上创建索引。索引可以提高查找索引列中特定值的查询的性能。
创建视图 − 使用CREATE VIEW等DDL命令基于查询结果创建虚拟表。视图有助于限制对特定数据列或行的访问,并简化复杂的查询。
什么是DML命令?
DML(数据操纵语言)是一组用于修改存储在数据库中的数据的命令。DML语句可用于插入、更新、删除和检索数据库中表的数据。这些语句修改存储在数据库中的数据,而不是数据库的结构。
例如,DML语句包括:
开发人员、分析师和最终用户经常使用DML语句来修改数据库中的数据。用户可以使用这些语句根据需要添加、修改或删除数据库中的数据。使用DML语句,用户可以根据需要更新数据,从数据库中删除过时或不相关的数据,并从大型数据集中检索特定数据。
DML命令的用途
以下是DML命令的用途:
数据插入 − 使用INSERT等DML命令向数据库中的表添加新数据。可以使用此命令更新数据库中的记录。
数据更新 − 使用UPDATE等DML命令修改表中现有数据。可以使用此命令更改表中特定列的值。
数据删除 − 使用DELETE等DML命令从表中删除数据。可以使用此命令从数据库中删除过时或不相关的数据。
数据检索 − 使用SELECT等DML命令从数据库中的一个或多个表中检索数据。
数据过滤 − 使用WHERE等DML命令过滤SELECT语句检索到的数据。可以使用此命令仅检索相关数据。
差异:数据库管理系统(DBMS)中的DDL和DML命令
下表突出显示了DBMS中DDL和DML命令的主要区别:
比较依据 |
DDL |
DML |
---|---|---|
基础 |
它处理数据如何在数据库中存储,并帮助定义数据库的结构或模式。 |
它允许我们操作存储在数据库中的数据,包括检索、更新和删除。 |
全称 |
这种语言的全称是数据定义语言。 |
这种语言的全称是数据操纵语言。 |
分类 |
DDL命令没有进一步的分类。 |
DML命令分为声明式和过程式(非过程式)DML。 |
命令用途 |
DDL语言下常用的命令是:
|
DML语言下常用的命令是:
|
自动提交 |
DDL命令会自动提交对数据库所做的更改,使其永久生效。 |
数据库修改是不可逆的,因为DML命令不会自动提交。 |
回滚 |
由于DDL命令使更改永久生效,因此我们无法撤消这些语句。 |
因为DML命令不会永久更改数据的状态,所以它们允许回滚。 |
WHERE子句 |
DDL命令不使用WHERE子句,因为在这种情况下无法进行记录过滤。 |
DML语句在修改数据库中的数据时允许使用WHERE子句。 |
影响 |
DDL命令会影响整个数据库或表。 |
DML命令将根据指定的条件影响单个或多个记录。 |
结论
总之,任何处理数据库的人都必须理解DDL和DML之间的区别。数据定义语言(DDL)用于定义数据库的架构和结构,包括创建表和更改其属性。数据操纵语言(DML)用于插入、更新和删除记录以及其他数据库操作。