DBMS 中 DDL 和 DML 之间的区别
DDL 与 DML 之间的主要区别
- 数据定义语言 (DDL) 可帮助您定义数据库结构或模式,而数据操作语言 (DML 命令) 允许您管理存储在数据库中的数据。
- DDL 命令用于创建数据库模式,而 DML 命令用于填充和操作数据库
- 比较 DDL 和 DML,DDL 语句会影响整个表,而 DML 命令只影响一行或多行。
- 在DDL中,SQL语句不能回滚,而在DML中,SQL语句可以回滚。
- DDL 是一种声明性方法,而 DML 是一种命令式方法。
- 重要的 DDL 命令有:1) CREATE、2) ALTER、3) DROP、4) TRUNCATE 等,而重要的 DML 命令有:1) INSERT、2) UPDATE、3) DELETE、4) MERGE 等。

这里我分析了DDL和DML的区别,并将全面评估它们的优缺点。
什么是 DDL?
数据定义语言可帮助您定义数据库结构或模式。DDL 命令可帮助您创建数据库和其他数据库对象的结构。其命令是自动提交的,因此更改将永久保存在数据库中。DDL 的全称是数据定义语言。
DDL 命令
五种类型的 DDL 命令如下:
CREATE
CREATE 语句用于定义数据库结构模式:
语法:
CREATE TABLE TABLE_NAME (COLUMN_NAME DATATYPES[,....]);
举个例子:
Create database university; Create table students; Create view for_students;
下降
Drops 命令从中删除表和数据库 RDBMS.
语法:
DROP TABLE ;
例如:
Drop object_type object_name; Drop database university; Drop table student;
改变
更改命令允许您更改 数据库.
语法:
在表中添加新列
ALTER TABLE table_name ADD column_name COLUMN-definition;
要修改表中现有的列:
ALTER TABLE MODIFY(COLUMN DEFINITION....);
例如:
Alter table guru99 add subject varchar;
截短
此命令用于从表中删除所有行并释放包含表的空间。
语法:
TRUNCATE TABLE table_name;
示例:
TRUNCATE table students;
DDL 命令示例
CREATE
语法:
CREATE TABLE tableName ( column_1 datatype [ NULL | NOT NULL ], column_2 datatype [ NULL | NOT NULL ], ... );
在这里,
- 参数tableName表示您要创建的表的名称。
- 参数column_1、column_2…表示要添加到表中的列。
- 应将列指定为 NULL 或 NOT NULL。如果不指定, SQL服务器 将以 NULL 作为默认值
示例:
CREATE TABLE Students ( Student_ID Int, Student_Name Varchar(10) )
改变
语法:
Alter TABLE <Table name> ADD Column1 datatype, Column2 datatype;
示例:
ALTER TABLE University.Students_Name ADD Course_Duration VARCHAR(20);
下降
语法:
DROP TABLE <tableName>;
参数tableName是要删除的表的名称。
示例:
DROP TABLE COURSE_NAMES;
为什么我们使用 DDL 命令?
在这里,我将解释为什么我们更喜欢 DDL 方法:
- 允许您存储共享数据
- 数据独立性提高完整性
- 允许多个用户
- 提高安全性和高效的数据访问
什么是 DML?
DML 命令允许您管理存储在数据库中的数据,尽管 DML 命令不会自动提交。而且,它们不是永久性的。因此,可以回滚操作。DML 的全称是数据操作语言。
DML 命令
我想强调一些重要的 DML 命令:
- 插入
- 更新
- 删除
插入
这是一个 SQL 查询语句。此命令用于将数据插入表的行中。
语法:
INSERT INTO TABLE_NAME (col1, col2, col3,.... col N) VALUES (value1, value2, value3, .... valueN); Or INSERT INTO TABLE_NAME VALUES (value1, value2, value3, .... valueN);
例如:
INSERT INTO students (RollNo, FIrstName, LastName) VALUES ('60', 'Tom', 'Erichsen');
更新
此命令用于更新或修改表中某一列的值。
语法:
UPDATE table_name SET [column_name1= value1,...column_nameN = valueN] [WHERE CONDITION]
例如:
UPDATE students SET FirstName = 'Jhon', LastName=' Wick' WHERE StudID = 3;
删除
此命令用于从表中删除一行或多行。
语法:
DELETE FROM table_name [WHERE condition];
例如:
DELETE FROM students WHERE FirstName = 'Jhon';
DML 命令示例
插入
In PL / SQL,我们可以使用 SQL 命令 INSERT INTO。此命令将以表名、表列和列值作为输入,并将值插入基表中。
INSERT 命令还可以使用“SELECT”语句直接从另一个表中获取值,而不是为每个列提供值。通过“SELECT”语句,我们可以插入与基表包含的行数相同的行数。
语法:
BEGIN INSERT INTO <table_name>(<column1 >,<column2>,...<column_n>) VALUES(<valuel><value2>,...:<value_n>); END;
上述语法显示了 INSERT INTO 命令。表名和值是必填字段,而如果插入语句包含表的所有列的值,则列名不是必填字段。
如果单独给出值,则关键字“VALUES”是必需的,如上所示。
语法:
BEGIN INSERT INTO <table_name>(<columnl>,<column2>,...,<column_n>) SELECT <columnl>,<column2>,.. <column_n> FROM <table_name2>; END;
上面的语法显示了 INSERT INTO 命令直接从使用 SELECT 命令。
在这种情况下,不应出现关键字“VALUES”,因为没有单独给出值。
删除
以下是删除表的语法
语法:
DROP TABLE <TableName>;
参数TableName是要删除的表的名称。
示例:
DROP TABLE COURSE_NAMES;
选择
要查看 SQL Server 中的数据,我们使用 SELECT 语句。
语法:
SELECT expression FROM tableName [WHERE condition];
示例:
SELECT * FROM Course;
为什么我们使用 DML 命令?
根据我们的集体经验,DML 有以下好处:
- DML 语句允许您修改存储在数据库中的数据。
- 用户可以指定需要哪些数据。
- 不同数据库供应商的 DML 提供了许多不同的风格和功能。
- 它提供了与系统的有效的人机交互。
DBMS 中 DDL 和 DML 之间的区别
让我解释一下 DDL 和 DML 命令之间的主要区别 DBMS:

比较基础 | DDL | DML |
---|---|---|
基础 | 数据定义语言 (DDL) 帮助您定义数据库结构或模式。 | 数据操作语言(DML 命令)允许您管理存储在数据库中的数据。 |
使用 VHDL 语言编写 | DDL 命令用于创建数据库模式。 | DML 命令用于填充和操作数据库 |
智能分类 | DDL 未进一步分类。 | DML 分为过程性 DML 和非过程性 DML。 |
命令用途 |
DDL语言下常用的命令有:
|
DML语言下常用的命令有:
|
定义 | 它定义表的列。 | 它添加或更新表的行 |
影响 | DDL 语句影响整个表。 | DML 影响一行或多行。 |
回滚 | SQL语句无法回滚 | SQL 语句可以回滚 |
如何在 DDL 和 DML 之间进行选择
我们观察到,虽然 DDL 用于定义数据库的结构,但 DML 却全部涉及其中的数据,每个数据都发挥着关键作用。