为什么SQL语句分为DDL,DML,DCL和TCL语句?

时间:2012-10-09 15:06:06

标签: sql

是否有特定需要将这些陈述分成若干组,或者这样做是为了逻辑地定义各种类型的陈述(在讨论,参考文件等中)?

是否存在将这些陈述分成这些子分组的重要用例?

4 个答案:

答案 0 :(得分:5)

DDL(数据定义语言) - >用于定义数据结构和模式,如Create和Alter命令。

DML(数据操作语言) - >用于使用选择命令等架构对象管理数据。

DCL(数据控制语言) - >用于控制Revoke和Grant命令等数据。

TCL(交易控制语言) - >用于管理DML语句(如Commit。)所做的更改。

这些是分类。

答案 1 :(得分:4)

这些是分类,它们出于同样的原因退出其他任何分类......

关于用例,我几乎看不到你会使用这些术语的情况,但是如果你是SQL Server管理工具的业务分析师,你可以说你不希望用户有权访问任何类型的DDL语句,意味着用户无法在数据库上创建对象...

答案 2 :(得分:3)

没有必要这样做。

但它在讨论SQL时提供了一个句柄。我经常使用DML和DDL作为速记。

示例:

  

MySQL不支持事务DDL,但SQL Server支持。

每个人(希望)都知道你的意思而不说

  

MySQL不支持事务性CREATE,ALTER和DROP语句......

他们的意思是:http://www.orafaq.com/faq/what_are_the_difference_between_ddl_dml_and_dcl_commands

答案 3 :(得分:1)

他们没有分裂。根据它们在数据库上执行的操作类型,它们被分类为类型。