ddl,dml和dcl的含义


Posted in 面试题 onMay 08, 2016
DDL :数据定义语言,用于定义和管理 SQL 数据库中的所有对象的语言
1.CREATE – to create objects in the database 创建数据库对象
2.ALTER – alters the structure of the database 修改数据库对象
3.DROP – delete objects from the database 删除数据库对象
4.TRUNCATE – remove all records from a table, including all spaces allocated for the records are removed
TRUNCATE TABLE [Table Name]。
下面是对Truncate语句在MSSQLServer2000中用法和原理的说明:
Truncate table 表名 速度快,而且效率高,因为:
TRUNCATE TABLE 在功能上与不带 WHERE 子句的 DELETE 语句相同:二者均删除表中的全部行。但 TRUNCATE TABLE 比 DELETE 速度快,且使用的系统和事务日志资源少。
DELETE 语句每次删除一行,并在事务日志中为所删除的每行记录一项。TRUNCATE TABLE 通过释放存储表数据所用的数据页来删除数据,并且只在事务日志中记录页的释放。
TRUNCATE TABLE 删除表中的所有行,但表结构及其列、约束、索引等保持不变。新行标识所用的计数值重置为该列的种子。如果想保留标识计数值,请改用 DELETE。如果要删除表定义及其数据,请使用 DROP TABLE 语句。
对于由 FOREIGN KEY 约束引用的表,不能使用 TRUNCATE TABLE,而应使用不带 WHERE 子句的 DELETE 语句。由于 TRUNCATE TABLE 不记录在日志中,所以它不能激活触发器。
TRUNCATE TABLE 不能用于参与了索引视图的表。
5.COMMENT – add comments to the data dictionary 注释
6.GRANT – gives user’s access privileges to database 授权
7.REVOKE – withdraw access privileges given with the GRANT command 收回已经授予的权限

DML:数据操作语言,SQL中处理数据等操作统称为数据操纵语言
1.SELECT – retrieve data from the a database 查询数据
2.INSERT – insert data into a table 添加数据
3.UPDATE – updates existing data within a table 更新数据
4.DELETE – deletes all records from a table, the space for the records remain 删除
5.CALL – call a PL/SQL or Java subprogram
6.EXPLAIN PLAN – explain access path to data
Oracle RDBMS执行每一条SQL语句,都必须经过Oracle优化器的评估。所以,了解优化器是如何选择(搜索)路径以及索引是如何被使用的,对优化SQL语句有很大的帮助。Explain可以用来迅速方便地查出对于给定SQL语句中的查询数据是如何得到的即搜索路径(我们通常称为Access Path)。从而使我们选择最优的查询方式达到最大的优化效果。
7.LOCK TABLE – control concurrency 锁,用于控制并发

DCL:数据控制语言,用来授予或回收访问数据库的某种特权,并控制数据库操纵事务发生的时间及效果,对数据库实行监视等
COMMIT – save work done 提交
SAVEPOINT – identify a point in a transaction to which you can later roll back 保存点
ROLLBACK – restore database to original since the last COMMIT 回滚
SET TRANSACTION – Change transaction options like what rollback segment to use 设置当前事务的特性,它对后面的事务没有影响.

Tags in this post...

面试题 相关文章推荐
Yahoo-PHP面试题3
Jan 14 面试题
联想C++笔试题
Jun 13 面试题
SQL Server的固定数据库角色都有哪些?对应的服务器权限有哪些?
May 18 面试题
介绍一下游标
Jan 10 面试题
什么是动态端口(Dynamic Ports)?动态端口的范围是多少?
Dec 12 面试题
介绍一下OSI七层模型
Jul 03 面试题
C#笔试题
Jul 14 面试题
如何利用find命令查找文件
Nov 18 面试题
一套软件测试笔试题
Jul 25 面试题
Ajxa常见问题都有哪些
Mar 26 面试题
同步和异步有何异同,在什么情况下分别使用他们?
Dec 28 面试题
WebSphere面试题:在WebSphere里面如何部署一个应用
Aug 02 面试题
索引覆盖(Index Covering)查询含义
Feb 18 #面试题
为什么group by 和order by会使查询变慢
May 16 #面试题
写出SQL四条最基本的数据操作语句(DML)
Dec 12 #面试题
介绍一下SQL注入攻击的种类和防范手段
Feb 18 #面试题
试解释COMMIT操作和ROLLBACK操作的语义
Jul 25 #面试题
怎么可以提高数据库查询数据的速度
Jun 28 #面试题
如何估计一张表的大小(假设该表中有1万条数据)
Mar 27 #面试题
You might like
php提示undefined index的几种解决方法
2012/05/21 PHP
WAMP环境中扩展oracle函数库(oci)
2015/06/26 PHP
php中array_multisort对多维数组排序的方法
2020/06/21 PHP
php实现的xml操作类
2016/01/15 PHP
Symfony2学习笔记之控制器用法详解
2016/03/17 PHP
PHP进行批量任务处理不超时的解决方法
2016/07/11 PHP
PHP下载远程图片的几种方法总结
2017/04/07 PHP
PHP数据对象映射模式实例分析
2019/03/29 PHP
IE JS编程需注意的内存释放问题
2009/06/23 Javascript
ASP中进行HTML数据及JS数据编码函数
2009/11/11 Javascript
JqGrid web打印实现代码
2011/05/31 Javascript
JS中使用sort结合localeCompare实现中文排序实例
2014/07/23 Javascript
jQuery实现响应鼠标滚动的动感菜单效果
2015/09/21 Javascript
JavaScript基础篇(3)之Object、Function等引用类型
2015/11/30 Javascript
AngularJS实现表单元素值绑定操作示例
2017/10/11 Javascript
p5.js入门教程之鼠标交互的示例
2018/03/16 Javascript
Angular父子组件通过服务传参的示例方法
2018/10/31 Javascript
Nodejs让异步变成同步的方法
2019/03/02 NodeJs
微信小程序本地存储实现每日签到、连续签到功能
2019/10/09 Javascript
Vue 实现html中根据类型显示内容
2019/10/28 Javascript
Egg Vue SSR 服务端渲染数据请求与asyncData
2019/11/24 Javascript
vue 动态生成拓扑图的示例
2021/01/03 Vue.js
[46:37]LGD vs TNC 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
pytorch常见的Tensor类型详解
2020/01/15 Python
Keras中的多分类损失函数用法categorical_crossentropy
2020/06/11 Python
Ubuntu权限不足无法创建文件夹解决方案
2020/11/14 Python
HTML5 播放 RTSP 视频的实例代码
2019/07/29 HTML / CSS
工程安全员岗位职责
2014/03/09 职场文书
经典促销广告词大全
2014/03/19 职场文书
责任书范本
2014/08/25 职场文书
工程索赔意向书
2014/08/30 职场文书
一份关于丢失公司财物的检讨书
2014/09/19 职场文书
红楼梦读书笔记
2015/06/25 职场文书
歌咏比赛主持词
2015/06/29 职场文书
五一晚会主持词
2015/07/01 职场文书
golang 接口嵌套实现复用的操作
2021/04/29 Golang