本文摘自PHP中文网,作者一个新手,侵删。
作为经验丰富的开发人员,对于DDL、DML、DCL、TCL这些缩写词(名词)或许不会陌生,但是作为亿i个程序开发的新手可能就会有很多迷惑,接下来就给大家详细解释下,希望对读者有一定的帮助。1、数据定义语言DDL
DDL((Data Definition Language):主要的命令有CREATE、ALTER、DROP等,用于定义/修改/删除数据对象(如表)的数据结构、数据类型、表之间的链接和约束等初始化工作,大多在建立表时使用,或者说,DDL语言操作的对象是数据库中的对象而非对象所包含的数据。
DDL包含以下语句:
1 2 3 4 5 6 7 8 |
|
注意:
当执行DDL语句时,在每一条语句前后,数据库(oracle/Mysql)都将提交当前的事务。如果用户使用insert命令将记录插入到数据库后,执行了一条DDL语句(如create table),此时来自insert命令的数据将被提交到数据库。当DDL语句执行完成时,DDL语句会被自动提交,不能回滚。
2、数据操作语言DML
DML(Data Manipulation Language):用于添加/删除/修改/查询/合并数据库中数据,比如SELECT、UPDATE、INSERT、DELETE、MERGE操作,是用来对数据库里的表数据进行操作的语言。
DML包含以下语句:
1 2 3 4 5 |
|
注意:
当执行DML命令如果没有提交,将不会被其他会话看到。除非在DML命令之后执行了DDL命令或DCL命令,或用户退出会话,或终止实例,此时系统会自动发出commit命令,使未提交的DML命令提交。
3、数据控制语言DCL
DCL(Data Control Language):是用来设置或更改数据库用户或角色权限的语句,包括(grant,deny,revoke等)。
DCL包含以下语句:
1 2 |
|
数据控制语言只要是对用户进行创建、删除、密码修改以及给用户赋予权限和删除权限?Y一系列操作。
4、事务控制语言(TCL)
TCL(Transaction Control Language):用来对事务进行管理。
TCL包含以下语句:
1 2 3 4 |
|
由于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详细解释 的详细内容,更多文章请关注木庄网络博客!!
相关阅读 >>
更多相关阅读请进入《解释》频道 >>
数据库系统概念 第6版
本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。