DDL与DML问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DDL与DML问题相关的知识,希望对你有一定的参考价值。

“TRUNCATE只在删除全表适用,TRUNCATE是DDL不是DML”
其中
DDL:数据定义语言
DML(Data Manipulation Language):数据操纵语言命令使用户能够查询数据库以及操作已有数据库中的数据。
truncate不是可以删除表中数据,这就算可以操作数据库中的数据了,为什么还是DDL而不是DML呢?谢谢!
那像drop table这些命令是手工提交的?

DML(data manipulation language)数据操纵语言:

就是我们最经常用到的 SELECT、UPDATE、INSERT、DELETE。 主要用来对数据库的数据进行一些操作。

比如:

SELECT 列名称 FROM 表名称

UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值

INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)

DELETE FROM 表名称 WHERE 列名称 = 值

DDL(data definition language)数据库定义语言:

其实就是我们在创建表的时候用到的一些sql,比如说:CREATE、ALTER、DROP等。DDL主要是用在定义或改变表的结构,数据类型,表之间的链接和约束等初始化工作上。

比如:

CREATE TABLE 表名称
(
列名称1 数据类型,
列名称2 数据类型,
列名称3 数据类型,
....
)ALTER TABLE table_nameALTER COLUMN column_name datatypeDROP TABLE 表名称DROP DATABASE 数据库名称

扩展资料:

DCL(Data Control Language)——数据控制语言,用来授予或回收访问数据库的某种特权,并控制数据库操纵事务发生的时间及效果,对数据库实行监视等。

数据库控制功能,用来设置或更改数据库用户或角色权限的语句,包括grant,deny,revoke等语句。在默认状态下,只有sysadmin,dbcreator,db_owner或db_securityadmin等人员才有权力执行DCL 详细解释。

(1)COMMIT - save work done 提交

(2)SAVEPOINT - identify a point in a transaction to which you can later roll back 保存点

(3)ROLLBACK - restore database to original since the last COMMIT 回滚

(4)SET TRANSACTION - Change transaction options like what rollback segment to use 设置当前事务的特性,它对后面的事务没有影响

参考技术A DML是SELECT、UPDATE、INSERT、DELETE,就象它的名字一样,这4条命令是用来对数据库里的数据进行操作的语言。DDL比DML要多,主要的命令有CREATE、ALTER、DROP等,DDL主要是用在定义或改变表(TABLE)的结构,数据类型,表之间的链接和约束等初始化工作上,他们大多在建立表时使用。
一、DDL is Data Definition Language statements. Some examples:
数据定义语言,用于定义和管理 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]。
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 is Data Manipulation Language statements.
数据操作语言,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 is Data Control Language statements.
数据控制语言,用来授予或回收访问数据库的某种特权,并控制数据库操纵事务发生的时间及效果,对数据库实行监视等
1、COMMIT - save work done 提交 ;
2、SAVEPOINT - identify a point in a transaction to which you can later roll back 保存点;
3、ROLLBACK - restore database to original since the last COMMIT 回滚;
4、SET TRANSACTION - Change transaction options like what rollback segment to use 设置当前事务的特性,它对后面的事务没有影响。
参考技术B

DDL (Data Definition Language 数据定义语言)

数据定义语言,用于定义和管理 SQL 数据库中的所有对象的语言

create table 创建表     
alter table  修改表   
drop table 删除表   
truncate table 删除表中所有行     
create index 创建索引   
drop index  删除索引

当执行DDL语句时,在每一条语句前后,oracle都将提交当前的事务。

如果用户使用insert命令将记录插入到数据库后,执行了一条DDL语句(如create table),此时来自insert命令的数据将被提交到数据库。

当DDL语句执行完成时,DDL语句会被自动提交,不能回滚。 

DML (Data Manipulation Language 数据操作语言) 

insert 将记录插入到数据库 
update 修改数据库的记录 
delete 删除数据库的记录

当执行DML命令如果没有提交,将不会被其他会话看到。

除非在DML命令之后执行了DDL命令或DCL命令,或用户退出会话,或终止实例,此时系统会自动发出commit命令,使未提交的DML命令提交。


总结下二者区别:

DML是SELECT、UPDATE、INSERT、DELETE,就象它的名字一样,这4条命令是用来对数据库里的数据进行操作的语言。

DDL比DML要多,主要的命令有CREATE、ALTER、DROP等,DDL主要是用在定义或改变表(TABLE)的结构,数据类型,表之间的链接和约束等初始化工作上,他们大多在建立表时使用。

参考技术C 因为DML需要提交
而truncate是自动提交的

你要分清哪些命令是DML,哪些是DDL
DDL是数据定义语言,如drop,alter,truncate等都是DDL

insert,update,delete,merge等都是DML

在oracle里DML是可以rollback的,而DDL是不可以的本回答被提问者采纳

以上是关于DDL与DML问题的主要内容,如果未能解决你的问题,请参考以下文章

数据库DDL与DML指的什么?

数据库DDL与DML指的什么?

HBASE基础使用Java API实现DDL与DML

DDL,DML和DCL的区别与理解?

DDL与DML语句

SQL: DDL, DML,表定义与含义