您好,欢迎访问一九零五行业门户网

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

作为经验丰富的开发人员,对于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详细解释 的详细内容。
其它类似信息

推荐信息