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 等。
Difference Between DDL and DML in DBMS
DBMS中DDL和DML的区别

在此,我将分析 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 命令的主要区别

Key Differences between DDL vs DML
DDL 与 DML
比较依据 DDL DML
基础版 数据定义语言 (DDL) 帮助您定义数据库结构或模式。 数据操作语言 (DML 命令) 允许您管理存储在数据库中的数据。
用途 DDL 命令用于创建数据库模式。 DML 命令用于填充和操作数据库
分类 DDL 未进一步分类。 DML 分为过程式 DML 和非过程式 DML。
命令用途

DDL 语言下常用的命令有

  • CREATE
  • ALTER
  • DROP
  • TRUNCATE
  • COMMENT
  • RENAME

DML 语言下常用的命令有

  • INSERT
  • UPDATE
  • DELETE
  • MERGE
  • CALL
定义 它定义了表的列。 它添加或更新表中的行
效果 DDL 语句影响整个表。 DML 影响一行或多行。
回滚 SQL 语句无法回滚 SQL 语句可以回滚

如何选择 DDL 和 DML

我们注意到,虽然 DDL 用于定义数据库结构,但 DML 专注于数据库内的数据,它们都发挥着关键作用。