DQL、DML、DDL、DCL的区别
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;
DQL、DML、DDL、DCL的区别的更多相关文章
- 数据库SQL语言类型(DQL.DML.DDL.DCL)
1.SQL语言 SQL(Structure Query Language)语言是数据库的核心语言. SQL是一个标准的数据库语言, 是面向集合的描述性非过程化语言. 它功能强,效率高,简单易学易维护. ...
- SQL语言分类DQL,DML,DDL,DCL,DTL
SQL语言共分为五大类: 数据查询语言DQL 数据操纵语言DML 数据定义语言DDL 数据控制语言DCL 数据事物语言DTL DQL 数据查询语言DQL基本结构是由SELECT子句,FROM子句,WH ...
- 关于DDL、DML和DCL的区别与理解
2017年5月31日,天气阴.近期事情颇多,心情比较沉重. 端午刚过,早上上课,很多同学还处在端午的疲惫状态中没有回过神来,当然我也不例外.端午奔波三天,加上毕设的事情,可以说身心俱疲.状态不佳,整理 ...
- DDL、DML和DCL的区别与理解
DML.DDL.DCL区别 . 总体解释: DML(data manipulation language): 它们是SELECT.UPDATE.INSERT.DELETE,就象它的名字一样,这4条命令 ...
- DML,DDL,DCL,DQL的区别
DML 英文缩写 DML = Data Manipulation Language,数据操纵语言,命令使用户能够查询数据库以及操作已有数据库中的数据的计算机语言.具体是指是UPDATE更新.INS ...
- 数据库的DDL、DML和DCL的区别与理解
DML(data manipulation language): 它们是SELECT.UPDATE.INSERT.DELETE,就象它的名字一样,这4条命令是用来对数据库里的数据进行操作的语言 DDL ...
- SQL语句 DML,DDL,DCL
数据控制语言(DCL)是用来设置或者更改数据库用户或角色权限的语句,这些语句包括GRANT.DENY.REVOKE等语句,在默认状态下,只有 sysadmin.dbcreator.db_owner或d ...
- PLSQL_PLSQL中DML/DDL/DCL的概念和区分(概念)
2014-06-20 Created By BaoXinjian
- SQL语句 DML,DDL,DCL(转载)
数据控制语言(DCL)是用来设置或者更改数据库用户或角色权限的语句,这些语句包括GRANT.DENY.REVOKE等语句,在默认状态下,只有 sysadmin.dbcreator.db_owner或d ...
- mysql DML DDL DCL
DML(data manipulation language): 它们是SELECT.UPDATE.INSERT.DELETE,就象它的名字一样,这4条命令是用来对数据库里的数据进行操作的语言 D ...
随机推荐
- eth0 no such device(reload)
转载自:http://blog.chinaunix.net/uid-25554408-id-292638.html 今天我在vmware里安装了虚拟机,安装虚拟机就想安装vmware tools(这个 ...
- Ubuntu下 Nfs服务器安装
Ubuntu Nfs服务器安装 nfs服务器在嵌入式开发中非常常用,可以实现主机和开发板共享文件. 1.安装软件包 sudo apt-get install nfs-common nf ...
- 下载并保存图片Python2.7
#!/usr/bin/env python# -*- encoding: utf-8 -*-import urllib2import os def save_img(img_url,file_name ...
- 当property遇上category
[当property遇上category] @property可以在类定义中,以及extension定义中使用,编译器会自动为@property生成代码,并在变量列表(ivar_list_t)中添加相 ...
- PHP网站
1.NetBeans 解决PHP调试问题:https://netbeans.org/ 支持PHP调试的版本 2. http://document.thinkphp.cn/manual_3_2.html ...
- PHP屏蔽关键字实现方法
方法一: 思路 用正则去匹配关键字,把关键字用别的字符替换: 1 2 3 $str = "/你大爷|你麻痹|什么玩意|SB|你他妈/"; // 关键字正则字符串 $string ...
- solrcloud上传collection配置
建议:上传多个collection的配置文件,建议修改配置文件名字,在solr.xml中按照文件名来引用collection对应的schema和solrconfig.xml文件,这样无论你多个coll ...
- Linux 各文件系统配置
区分目录跟文件 可执行文件:可以拿出来直接运行的命令. 符号链接 重要的目录 bin 里面是命令. etc 重要的配置文件.各种软件的配置文件.以后要配置网络环境,linux运行环境都是在这里进行配置 ...
- 场景中,并没有灯源的存在,但是cube却会有灯光照射的反应,这就是Light Probe Group的作用。
http://blog.csdn.net/qq617119142/article/details/41674755
- 项目代码:js
1 //获取发文时间 function selectWriteTime(){ $("#writing_time_index").on("click"," ...