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;
DROP
DROP 命令从 RDBMS 中删除表和数据库。
语法
DROP TABLE ;
例如
Drop object_type object_name; Drop database university; Drop table student;
ALTER
ALTER 命令允许您修改 数据库 的结构。
语法
向表中添加新列
ALTER TABLE table_name ADD column_name COLUMN-definition;
修改表中的现有列
ALTER TABLE MODIFY(COLUMN DEFINITION....);
例如
Alter table guru99 add subject varchar;
TRUNCATE
此命令用于删除表中的所有行并释放表中包含的空间。
语法
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 Server 将 NULL 作为默认值
示例
CREATE TABLE Students ( Student_ID Int, Student_Name Varchar(10) )
ALTER
语法
Alter TABLE <Table name> ADD Column1 datatype, Column2 datatype;
示例
ALTER TABLE University.Students_Name ADD Course_Duration VARCHAR(20);
DROP
语法
DROP TABLE <tableName>;
参数 tableName 是要删除的表的名称。
示例
DROP TABLE COURSE_NAMES;
为什么我们使用 DDL 命令?
在这里,我将解释为什么我们更喜欢 DDL 方法
- 允许您存储共享数据
- 数据独立性改进的完整性
- 允许多用户
- 改进了安全性和高效的数据访问
什么是 DML?
DML 命令允许您管理存储在数据库中的数据,尽管 DML 命令不是自动提交的。此外,它们不是永久性的。因此,可以回滚操作。DML 的全称是数据操作语言。
DML 命令
我想重点介绍一些重要的 DML 命令
- INSERT
- UPDATE
- DELETE
INSERT
这是一个 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
此命令用于更新或修改表中列的值。
语法
UPDATE table_name SET [column_name1= value1,...column_nameN = valueN] [WHERE CONDITION]
例如
UPDATE students SET FirstName = 'Jhon', LastName=' Wick' WHERE StudID = 3;
DELETE
此命令用于从表中删除一行或多行。
语法
DELETE FROM table_name [WHERE condition];
例如
DELETE FROM students WHERE FirstName = 'Jhon';
DML 命令示例
INSERT
在 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 命令直接从 <table_name2> 获取值。
在这种情况下,不应存在关键字 'VALUES',因为值不是单独提供的。
DELETE
以下是删除表的语法
语法
DROP TABLE <TableName>;
参数 TableName 是要删除的表的名称。
示例
DROP TABLE COURSE_NAMES;
SELECT
要在 SQL Server 中查看数据,我们使用 SELECT 语句。
语法
SELECT expression FROM tableName [WHERE condition];
示例
SELECT * FROM Course;
为什么我们使用 DML 命令?
在这里,借鉴我们集体经验,这是 DML 的好处
- DML 语句允许您修改存储在数据库中的数据。
- 用户可以指定需要哪些数据。
- DML 在数据库供应商之间提供了许多不同的风格和功能。
- 它提供了与系统的高效人机交互。
DBMS中DDL和DML的区别
让我解释一下 DBMS 中 DDL 和 DML 命令的主要区别
比较依据 | DDL | DML |
---|---|---|
基础版 | 数据定义语言 (DDL) 帮助您定义数据库结构或模式。 | 数据操作语言 (DML 命令) 允许您管理存储在数据库中的数据。 |
用途 | DDL 命令用于创建数据库模式。 | DML 命令用于填充和操作数据库 |
分类 | DDL 未进一步分类。 | DML 分为过程式 DML 和非过程式 DML。 |
命令用途 |
DDL 语言下常用的命令有
|
DML 语言下常用的命令有
|
定义 | 它定义了表的列。 | 它添加或更新表中的行 |
效果 | DDL 语句影响整个表。 | DML 影响一行或多行。 |
回滚 | SQL 语句无法回滚 | SQL 语句可以回滚 |
如何选择 DDL 和 DML
我们注意到,虽然 DDL 用于定义数据库结构,但 DML 专注于数据库内的数据,它们都发挥着关键作用。