DQL、DML、DDL、DCL的区别

原文链接: http://www.cnblogs.com/sanen/p/10062218.html

1. 历史发展

SQL(Structure Query Language)语言是数据库的核心语言。

SQL的发展是从1974年开始的,其发展过程如下:
1974年-----由Boyce和Chamberlin提出,当时称SEQUEL。
1976年-----IBM公司的Sanjase研究所在研制RDBMS SYSTEM R时改为SQL。
1979年-----ORACLE公司发表第一个基于SQL的商业化RDBMS产品。
1982年-----IBM公司出版第一个RDBMS语言SQL/DS。
1985年-----IBM公司出版第一个RDBMS语言DB2。
1986年-----美国国家标准化组织ANSI宣布SQL作为数据库工业标准。


SQL是一个标准的数据库语言,是面向集合的描述性非过程化语言。它功能强,效率高,简单易学易维护(迄今为止,我还没见过比它还好学的语言)。

然而SQL语言由于以上优点,存在的问题:它是非过程性语言,即大多数语句都是独立执行的,与上下文无关,

而绝大部分应用都是一个完整的过程,显然用SQL完全实现这些功能是很困难的。

所以大多数数据库公司为了解决此问题,作了如下两方面的工作:

(1) 扩充SQL,在SQL中引入过程性结构;

(2) 把SQL嵌入到高级语言中,以便一起完成一个完整的应用。

2. SQL 语言分类

    SQL语言共分为四大类:数据查询语言DQL,数据操纵语言DML,数据定义语言DDL,数据控制语言DCL。


1. 数据查询语言DQL

 数据查询语言DQL基本结构是由SELECT子句,FROM子句,WHERE
 子句组成的查询块:
    SELECT <字段名表>   FROM <表或视图名>   WHERE <查询条件>

2 .数据操纵语言DML (data manipulation language)数据操纵语言
 数据操纵语言DML主要有三种形式:
   1) 插入:INSERT
   2) 更新:UPDATE
   3) 删除:DELETE

3. 数据定义语言DDL (data definition language)数据库定义语言
 数据定义语言DDL用来创建数据库中的各种对象-----表、视图、索引、同义词、聚簇等如:

   CREATE TABLE / VIEW / INDEX / SYN / CLUSTER | | | | | 表 视图 索引 同义词 簇

   DDL操作是隐性提交的!不能rollback 

   其实就是我们在创建表的时候用到的一些sql,比如说:CREATE、ALTER、DROP等。

   DDL主要是用在定义或改变表的结构,数据类型,表之间的链接和约束等初始化工作上。


       4. 数据控制语言DCL
           概述1:   数据控制语言DCL用来授予或回收访问数据库的某种特权,并控制数据库操纵事务发生的时间及效果,

                        对数据库实行监视等。

           概述2: 是用来设置或更改数据库用户或角色权限的语句,包括(grant,deny,revoke等)语句 (比较少用到DCL)。


          1) GRANT:授权。

          2) ROLLBACK [WORK] TO [SAVEPOINT]:回退到某一点。

                回滚---ROLLBACK
                回滚命令使数据库状态回到上次最后提交的状态。其格式为:SQL>ROLLBACK;

          3) COMMIT [WORK]:提交。

               在数据库的插入、删除和修改操作时,只有当事务在提交到数据库时才算完成。在事务提交前,
               只有操作数据库的这个人才能有权看到所做的事情,别人只有在最后提交完成后才可以看到。

               提交数据有三种类型:显式提交、隐式提交及自动提交。 具体说明如下:

                       (1) 显式提交    用COMMIT命令直接完成的提交为显式提交。其格式为:SQL>COMMIT;

                      (2) 隐式提交    用SQL命令间接完成的提交为隐式提交。这些命令是:

                                             ALTER,AUDIT,COMMENT,CONNECT,CREATE,DISCONNECT,DROP,

                                            EXIT,GRANT,NOAUDIT,QUIT,REVOKE,RENAME。

                     (3) 自动提交  若把AUTOCOMMIT设置为ON,则在插入、修改、删除语句执行后,

                                          系统将自动进行提交,这就是自动提交。

                         其格式为: SQL>SET AUTOCOMMIT ON;

 

转载于:https://www.cnblogs.com/sanen/p/10062218.html

猜你喜欢

转载自blog.csdn.net/weixin_30221655/article/details/94816409