• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > 关于概念DDL、DML、DCL、TCL详细解释

关于概念DDL、DML、DCL、TCL详细解释

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-05

匿名通过本文主要向大家介绍了解释,详细,概念等相关知识,希望本文的分享对您有所帮助
作为经验丰富的开发人员,对于DDL、DML、DCL、TCL这些缩写词(名词)或许不会陌生,但是作为亿i个程序开发的新手可能就会有很多迷惑,接下来就给大家详细解释下,希望对读者有一定的帮助。

1、数据定义语言DDL
DDL((Data Definition Language):主要的命令有CREATE、ALTER、DROP等,用于定义/修改/删除数据对象(如表)的数据结构、数据类型、表之间的链接和约束等初始化工作,大多在建立表时使用,或者说,DDL语言操作的对象是数据库中的对象而非对象所包含的数据。

DDL包含以下语句:

 1、CREATE : 在数据库中创建新的数据对象
 2、ALTER : 修改数据库中对象的数据结构
 3、DROP : 删除数据库中的对象
 4、DISABLE/ENABLE TRIGGER : 修改触发器的状态
 5、UPDATE STATISTIC : 更新表/视图统计信息
 6、TRUNCATE TABLE : 清空表中数据
 7、COMMENT : 给数据对象添加注释
 8、RENAME : 更改数据对象名称

注意:
当执行DDL语句时,在每一条语句前后,数据库(oracle/Mysql)都将提交当前的事务。如果用户使用insert命令将记录插入到数据库后,执行了一条DDL语句(如create table),此时来自insert命令的数据将被提交到数据库。当DDL语句执行完成时,DDL语句会被自动提交,不能回滚。

2、数据操作语言DML
DML(Data Manipulation Language):用于添加/删除/修改/查询/合并数据库中数据,比如SELECT、UPDATE、INSERT、DELETE、MERGE操作,是用来对数据库里的表数据进行操作的语言。

DML包含以下语句:

 1、INSERT :将数据插入到表或视图
 2、DELETE :从表或视图删除数据
 3、SELECT :从表或视图中获取数据
 4、UPDATE :更新表或视图中的数据
 5、MERGE : 对数据进行合并操作(插入/更新/删除)

注意:
当执行DML命令如果没有提交,将不会被其他会话看到。除非在DML命令之后执行了DDL命令或DCL命令,或用户退出会话,或终止实例,此时系统会自动发出commit命令,使未提交的DML命令提交。

3、数据控制语言DCL
DCL(Data Control Language):是用来设置或更改数据库用户或角色权限的语句,包括(grant,deny,revoke等)。

DCL包含以下语句:

 1、GRANT : 赋予用户某种控制权限
 2、REVOKE :取消用户某种控制权限

数据控制语言只要是对用户进行创建、删除、密码修改以及给用户赋予权限和删除权限扽一系列操作。

4、事务控制语言(TCL)
TCL(Transaction Control Language):用来对事务进行管理。

TCL包含以下语句:

  1、COMMIT : 保存已完成事务动作结果
  2、SAVEPOINT : 保存事务相关数据和状态用以可能的回滚操作
  3、ROLLBACK : 恢复事务相关数据至上一次COMMIT操作之后
  4、SET TRANSACTION : 设置事务选项

由于DML语句对表数据进行操作的时候都会加上行级锁,确认完成后,必须加上事物处理结束的命令COMMIT才能正式生效,否则改变不一定写入数据库里。如果想撤回这些操作, 可以用命令 ROLLBACK 复原。
在运行INSERT,DELETE和UPDATE语句前最好估算一下可能操作的记录范围,应该把它限定在较小范围内,例如一万条记录,否则ORACLE处理这个事物用到很大的回退段。程序响应慢甚至失去响应。如果记录数上十万以上这些操作。可以把这些SQL语句分段分次完成。其间加上COMMIT确认事物处理。

根据语句操作目标的不同,还是很好区分这四种类型:DDL-数据对象; DML-数据; DCL-权限; TCL-事务。
唯一需要注意的是TRUNCATE,尽管从功能上看相当于DELETE表中所有数据,但由于它所操作的对象是table这个级别而非row(由于某种原因不能立即删除表数据时,TRUNCATE会锁定整张表,而DELETE锁定的则是row),所以归在DDL中。

以上就是关于概念DDL、DML、DCL、TCL详细解释 的详细内容,更多请关注微课江湖其它相关文章!

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • sphinxql如何得到结果数及show meta的详细说明
  • CREATE DATABASE语句解释
  • 关于概念DDL、DML、DCL、TCL详细解释
  • Innodb 状态的详解
  • Oracle中Decode()函数使用说明
  • MySQL左联多表查询where条件写法示例

相关文章

  • 2018-12-05Mysql 5.7.18 利用MySQL proxies_priv实现类似用户组管理实例分享
  • 2018-12-05mysql同步复制搭建方法指南详细步骤
  • 2018-12-05管理数据记录的图文详解(phpMyAdmin的使用教程4)
  • 2018-12-05MySQL创建存储过程并循环添加记录方法详解
  • 2017-05-11MySQL获取系统性能和状态代码
  • 2018-12-05 mysql创建表并将数据装入表
  • 2018-12-05MySql中使用Group By对多个字段进行分组的方法
  • 2018-12-05不能够连接到主机(名称为localhost)上的MySQL服务”
  • 2018-12-05SQL对冗余数据的删除重复记录只保留单条的说明
  • 2017-05-11解析如何使用Zend Framework 连接数据库

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • 用sql语句实现分离和附加数据库的方法
    • 关于Select Where In 的排序问题
    • 批量更新数据库所有表中字段的内容,中木马后的急救处理
    • java实现插入mysql二进制文件,blob类型,遇到问题及解决办法
    • oracle下巧用bulk collect实现cursor批量fetch的sql语句
    • 卸载VS2011 Developer Preview后Sql Server2008 R2建立数据库关
    • 日期和时间处理函数及数值处理函数实例(数据处理函数的使用二)
    • mysql Load Data InFile 的用法
    • 怎么解决localhost无法链接本地mysql数据库问题
    • mysql的XA事务恢复过程详解

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有