首页 > 数据库 > mysql教程 > 了解 SQL 中的 DDL、DML、DCL 和 TCL:主要差异解释

了解 SQL 中的 DDL、DML、DCL 和 TCL:主要差异解释

Linda Hamilton
发布: 2024-12-20 03:17:10
原创
439 人浏览过

Understanding DDL, DML, DCL, and TCL in SQL: Key Differences Explained

DDL、DML、DCL 和 TCL 之间的区别

SQL 命令根据其功能分为几类。以下是 DDLDMLDCLTCL 之间差异的解释,并附有示例:


1. DDL(数据定义语言)

目的

DDL 命令用于定义和管理数据库对象的结构,如表、模式、索引和视图。

主要特点

  • 专注于定义和修改数据库架构。
  • 使用 DDL 命令所做的更改是永久性的并自动提交。

示例

  • CREATE:创建表或数据库对象。
  CREATE TABLE students (
      id INT PRIMARY KEY,
      name VARCHAR(100),
      age INT
  );
登录后复制
登录后复制
  • ALTER:修改现有表。
  ALTER TABLE students ADD COLUMN grade CHAR(1);
登录后复制
登录后复制
  • DROP:删除数据库对象。
  DROP TABLE students;
登录后复制
登录后复制
  • TRUNCATE:删除表中的所有记录。
  TRUNCATE TABLE students;
登录后复制
登录后复制

要点

  • DDL 命令定义数据库的结构,而不是其数据。
  • 自动提交更改(无法回滚)。

2. DML(数据操作语言)

目的

DML 命令用于操作数据库表中存储的数据,例如检索、插入、更新或删除数据。

主要特点

  • 专注于数据操作而不是数据库的结构。
  • 更改不会自动提交;它们可以回滚。

示例

  • INSERT:添加新记录。
  INSERT INTO students (id, name, age, grade)
  VALUES (1, 'Alice', 20, 'A');
登录后复制
登录后复制
  • UPDATE:修改现有记录。
  UPDATE students
  SET age = 21
  WHERE id = 1;
登录后复制
登录后复制
  • DELETE:删除记录。
  DELETE FROM students
  WHERE id = 1;
登录后复制

要点

  • DML 命令用于处理数据库中的数据。
  • 更改需要使用 COMMIT 命令进行明确承诺。

3. DCL(数据控制语言)

目的

DCL命令用于控制对数据库的访问,确保只有授权用户才能执行特定操作。

主要特点

  • 关注安全和用户权限。
  • 授予或撤销对数据库对象的访问权限。

示例

  • GRANT:提供权限。
  CREATE TABLE students (
      id INT PRIMARY KEY,
      name VARCHAR(100),
      age INT
  );
登录后复制
登录后复制
  • REVOKE:删除权限。
  ALTER TABLE students ADD COLUMN grade CHAR(1);
登录后复制
登录后复制

要点

  • DCL 命令对于维护数据库安全至关重要。
  • 由数据库管理员用来管理用户访问。

4. TCL(事务控制语言)

目的

TCL 命令管理事务,确保数据更改得到一致处理,并可以根据需要提交或回滚。

主要特点

  • 专注于维护交易的完整性。
  • 在需要作为一个单元执行多个 DML 操作的场景中很有用。

示例

  • COMMIT:永久保存更改。
  DROP TABLE students;
登录后复制
登录后复制
  • ROLLBACK:撤消当前事务中所做的更改。
  TRUNCATE TABLE students;
登录后复制
登录后复制
  • SAVEPOINT:在事务中设置部分回滚的点。
  INSERT INTO students (id, name, age, grade)
  VALUES (1, 'Alice', 20, 'A');
登录后复制
登录后复制
  • SET TRANSACTION:定义事务的属性。
  UPDATE students
  SET age = 21
  WHERE id = 1;
登录后复制
登录后复制

要点

  • TCL命令用于管理复杂操作期间的数据一致性。
  • 更改通过 COMMIT 完成或通过 ROLLBACK 恢复。

比较表

Category Purpose Examples Changes Committed Focus
DDL Defines database structure CREATE, ALTER, DROP Auto-committed Database schema management
DML Manipulates data in the database INSERT, UPDATE, DELETE Not auto-committed Data within tables
DCL Controls access to the database GRANT, REVOKE Auto-committed User permissions and security
TCL Manages database transactions COMMIT, ROLLBACK, SAVEPOINT Requires explicit action Transaction consistency
类别 目的 示例 已提交更改 焦点 标题> DDL 定义数据库结构 创建、更改、删​​除 自动提交 数据库架构管理 DML 操作数据库中的数据 插入、更新、删除 不自动提交 表中的数据 DCL 控制对数据库的访问 授予、撤销 自动提交 用户权限和安全 TCL 管理数据库事务 提交、回滚、保存点 需要明确的操作 交易一致性 表>

结论

了解 DDL、DML、DCL 和 TCL 之间的差异对于高效的数据库管理至关重要。每个类别都有特定的作用,确保数据库的结构化、安全性和有效操作,同时保持数据完整性。

嗨,我是 Abhay Singh Kathayat!
我是一名全栈开发人员,精通前端和后端技术。我使用各种编程语言和框架来构建高效、可扩展且用户友好的应用程序。
请随时通过我的商务电子邮件与我联系:kaashshorts28@gmail.com。

以上是了解 SQL 中的 DDL、DML、DCL 和 TCL:主要差异解释的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:dev.to
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板