【问题标题】:What are DDL and DML?什么是 DDL 和 DML?
【发布时间】:2011-02-04 09:53:17
【问题描述】:

我听说过有关数据库的术语 DDL 和 DML,但我不明白它们是什么。

它们是什么以及它们与 SQL 有什么关系?

【问题讨论】:

    标签: sql ddl dml


    【解决方案1】:

    以下内容改编自这里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 – 指定交易的特征。

    【讨论】:

    • 您可能希望在将来链接不可用的情况下扩展您的答案
    • 有时您还会看到诸如 SELECT / SHOW / EXPLAIN / HELP 之类的命令从 DML 中分离出来,并在 DQL 下分组,并带有来自 Query 的 Q——因为它们并没有真正操作任何东西.
    • TRUNCATE 应该是 DML
    • @PeteAlvin 没办法。
    • @snr 为什么不呢?您的意思是重置标识行(这是我对 TRUNCATE 和 DELETE 之间的主要实际区别的理解)是一种数据定义形式?
    【解决方案2】:

    DDLData Definition Language:用于定义数据结构

    例如,对于 SQL,它将是诸如 create tablealter table、...之类的指令


    DMLData Manipulation Language:它用于操作数据本身

    例如,对于 SQL,它将是诸如 insertupdatedelete、...之类的指令

    【讨论】:

    • DESCRIBE 是 DDL 还是 DML?
    • @TomJMuthirenthi 我不认为DESCRIBE 适合两者中的任何一个。它只是返回它自己的表/数据库结构表示。您可以使用例如实现相同的目标。 CREATE 但不是“人类可读”
    • 如果 SELECT 被认为是 DML,那么 DESCRIBE 应该被认为是 DDL。
    【解决方案3】:

    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;
    

    【讨论】:

    • @isapir 您可以通过三种通用方式在 SQL 中“操作”数据: (1)您可以更改显示的结果。 (2)您可以更改结果的呈现或组织方式(在排序等方面)。 (3)您可以更改基础数据。在第一种情况下,您可以通过在 SELECT 语句中使用不同的 WHERE 子句、JOIN 谓词等来更改显示的结果,即“select * from account;”将给出与 select * from account where balance = 1000; 大不相同的结果(假设帐户有超过 1 行)
    • 当您选择不同格式的数据时,您修改的是该查询的数据表示,而不是数据本身。 DML 中的 M 代表数据的操纵,或用外行术语修改。 SELECT 不修改数据。或者,TRUNCATE 确实如此,因此是 DML 指令而不是 DDL 指令。
    【解决方案4】:

    DDL、数据定义语言

    • 在数据库中创建和修改数据库对象的结构。
    • 这些数据库对象可能有表、视图、模式、索引...等

    例如:

    • CREATEALTERDROPTRUNCATECOMMIT

    DML、数据操作语言

    DML 语句对表有影响。这就是我们在表中执行的基本操作。

    • 基本的 crud 操作在表中执行。
    • 这些 crud 操作由SELECTINSERTUPDATE 等执行。

    DML 中使用以下命令:

    • INSERTUPDATESELECTDELETE

    【讨论】:

      【解决方案5】:

      通俗地说,假设你想盖房子,你会做什么。

      DDL 即数据定义语言

      1. 从头开始构建
      2. 翻新它
      3. 销毁旧的并从头开始重新创建它

      那是

      1. CREATE
      2. ALTER
      3. DROP & CREATE

      DML 即数据操作语言

      人们进出/进出你的房子

      1. SELECT
      2. DELETE
      3. UPDATE
      4. TRUNCATE

      DCL 即数据控制语言

      您想控制人们允许他们进入房屋的哪一部分以及进入的类型。

      1. GRANT PERMISSION

      【讨论】:

        【解决方案6】:

        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/

        【讨论】:

          【解决方案7】:

          DDL = 数据定义语言,任何提供数据结构和其他信息的命令

          DML = 数据操作语言,只有 3 个,INSERT、UPDATE、DELETE。 4、如果要算SELECT * INTO x_tbl from tbl的MSSQL(ANSI SQL:CREATE TABLE x_tbl AS SELECT * FROM tbl

          【讨论】:

            【解决方案8】:

            DDL 是数据定义语言:想象一下您正在定义数据库。 所以我们使用 CREATE、ALTER TRUNCATE 命令。
            DML 在定义我们正在操作数据之后。所以我们使用 SELECT、INSERT、UPDATE、DELETE 命令。

            记住 DDL 命令是自动提交的。您不需要使用 COMMIT 语句。
            DML(数据操作语言)命令需要提交/回滚。

            【讨论】:

              【解决方案9】:

              简单来说。

              DDL(数据定义语言):将作用于数据结构。定义数据结构。

              DML(数据操作语言):将处理数据。操纵数据本身

              【讨论】:

                【解决方案10】:

                DDL:更改架构

                DML:更改数据

                似乎特定于 MySQL 限制 (rails's source code)

                【讨论】:

                  【解决方案11】:

                  DDL

                  创建、更改、删​​除(数据库、表、键、索引、视图、函数、存储过程)

                  DML

                  插入、删除、更新、截断(表)

                  【讨论】:

                    【解决方案12】:

                    DDL 代表数据定义语言。 DDL 用于定义表的结构,例如创建表或向表中添加列,甚至删除和截断表。 DML 代表数据操作语言。顾名思义,DML 用于操作表的数据。 DML中有一些命令,例如插入和删除。

                    【讨论】:

                      猜你喜欢
                      • 2018-06-18
                      • 2023-03-21
                      • 1970-01-01
                      • 2018-12-14
                      • 2014-02-01
                      • 2019-07-26
                      • 2011-04-11
                      • 1970-01-01
                      相关资源
                      最近更新 更多