【发布时间】:2011-02-04 09:53:17
【问题描述】:
我听说过有关数据库的术语 DDL 和 DML,但我不明白它们是什么。
它们是什么以及它们与 SQL 有什么关系?
【问题讨论】:
我听说过有关数据库的术语 DDL 和 DML,但我不明白它们是什么。
它们是什么以及它们与 SQL 有什么关系?
【问题讨论】:
以下内容改编自这里MySQL What is DDL, DML and DCL?:
DDL
DDL 是数据定义语言的简称,它处理 数据应该如何驻留的数据库模式和描述 数据库。
- CREATE – 创建数据库及其对象,例如(表、索引、视图、存储过程、函数和触发器)。
- ALTER – 改变现有数据库的结构。
- DROP – 从数据库中删除对象。
- TRUNCATE – 从表中删除所有记录;此外,为记录分配的所有空间都将被删除。
- COMMENT – 将 cmets 添加到数据字典中。
- RENAME – 重命名对象。
DML
DML 是处理数据的数据操作语言的简称 操作,并包括最常见的 SQL 语句,如 SELECT, INSERT、UPDATE、DELETE 等,用于存储、修改、检索、 删除和更新数据库中的数据。
- SELECT – 从一个或多个表中检索数据。
- INSERT – 将数据插入表中。
- UPDATE – 更新表中的现有数据。
- DELETE - 删除表中的所有记录。
- MERGE – UPSERT 操作(插入或更新)
- CALL – 调用 PL/SQL 或 Java 子程序。
- 解释计划 - 数据访问路径的解释。
- LOCK TABLE – 并发控制。
DCL
DCL 是包含命令的数据控制语言的简称 如 GRANT,主要关注权限、权限等 数据库系统的控制。
- GRANT - 允许用户访问数据库。
- REVOKE – 撤销使用 GRANT 命令授予的用户访问权限。
TCL
TCL 是事务控制语言的简称,它处理 数据库中的事务。
- COMMIT – 提交事务。
- ROLLBACK – 在发生任何错误时回滚事务。
- SAVEPOINT – 事务中的一个点,允许将状态回滚到保存点时的状态。
- SET TRANSACTION – 指定交易的特征。
【讨论】:
DQL 下分组,并带有来自 Query 的 Q——因为它们并没有真正操作任何东西.
DDL是Data Definition Language:用于定义数据结构。
例如,对于 SQL,它将是诸如 create table、alter table、...之类的指令
DML 是 Data Manipulation Language:它用于操作数据本身。
例如,对于 SQL,它将是诸如 insert、update、delete、...之类的指令
【讨论】:
DESCRIBE 适合两者中的任何一个。它只是返回它自己的表/数据库结构表示。您可以使用例如实现相同的目标。 CREATE 但不是“人类可读”
DDL 是 数据定义语言: 用于定义 数据库架构。 它适用于架构级别。
DDL 命令是:
create,drop,alter,rename
例如:
create table account (
account_number char(10),
balance integer);
DML是数据操作语言。用于访问和操作数据。
DML 命令是:
select,insert,delete,update,call
例如:
update account set balance = 1000 where account_number = 01;
【讨论】:
SELECT 不修改数据。或者,TRUNCATE 确实如此,因此是 DML 指令而不是 DDL 指令。
通俗地说,假设你想盖房子,你会做什么。
DDL 即数据定义语言
那是
CREATEALTERDROP & CREATEDML 即数据操作语言
人们进出/进出你的房子
SELECTDELETEUPDATETRUNCATEDCL 即数据控制语言
您想控制人们允许他们进入房屋的哪一部分以及进入的类型。
GRANT PERMISSION【讨论】:
DML 是 Data Manipulation Language 的缩写。用于检索、存储、修改、删除、插入和更新数据库中的数据。
示例:SELECT、UPDATE、INSERT 语句
DDL 是数据定义语言的缩写。用于创建和修改数据库中数据库对象的结构。
示例:CREATE、ALTER、DROP 语句
访问此网站了解更多信息:http://blog.sqlauthority.com/2008/01/15/sql-server-what-is-dml-ddl-dcl-and-tcl-introduction-and-examples/
【讨论】:
DDL 是数据定义语言:想象一下您正在定义数据库。
所以我们使用 CREATE、ALTER TRUNCATE 命令。
DML 在定义我们正在操作数据之后。所以我们使用 SELECT、INSERT、UPDATE、DELETE 命令。
记住 DDL 命令是自动提交的。您不需要使用 COMMIT 语句。
DML(数据操作语言)命令需要提交/回滚。
【讨论】:
简单来说。
DDL(数据定义语言):将作用于数据结构。定义数据结构。
DML(数据操作语言):将处理数据。操纵数据本身
【讨论】:
【讨论】:
创建、更改、删除(数据库、表、键、索引、视图、函数、存储过程)
插入、删除、更新、截断(表)
【讨论】:
DDL 代表数据定义语言。 DDL 用于定义表的结构,例如创建表或向表中添加列,甚至删除和截断表。 DML 代表数据操作语言。顾名思义,DML 用于操作表的数据。 DML中有一些命令,例如插入和删除。
【讨论】: