DDL与DML问题

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

推荐于2019-09-24 · 关注我不会让你失望
知道答主
回答量:46
采纳率:0%
帮助的人:1.6万
展开全部

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 设置当前事务的特性,它对后面的事务没有影响

ggcc2046
2018-05-24 · TA获得超过2.5万个赞
知道答主
回答量:92
采纳率:0%
帮助的人:2.9万
展开全部
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 设置当前事务的特性,它对后面的事务没有影响。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
普实软件
2017-09-26 · 知道合伙人软件行家
普实软件
知道合伙人软件行家
采纳数:1703 获赞数:7401
普实软件ERP专家

向TA提问 私信TA
展开全部

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)的结构,数据类型,表之间的链接和约束等初始化工作上,他们大多在建立表时使用。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
nw5452
2009-09-30 · TA获得超过781个赞
知道小有建树答主
回答量:627
采纳率:0%
帮助的人:404万
展开全部
因为DML需要提交
而truncate是自动提交的

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

insert,update,delete,merge等都是DML

在oracle里DML是可以rollback的,而DDL是不可以的
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式