其他分享
首页 > 其他分享> > DML、DDL、DCL

DML、DDL、DCL

作者:互联网

D是Data,L是language

中间字母分别是

M:manipulation 操纵,操作

D:definition 定义

C:control 控制

在执行commit、DDL、DCL、exit、conn语句之后会进行自动提交事务;rollback、quit取消事务,savepoint s1,指定保存点s1,rollback to s1可以回到保存点s1。

一、DML

主要是对数据库数据的操作语言,主要有insert、delete、update、select,主要改变数据。

1、数据查询

select * from jobs;  //查询数据

2、数据插入,在插入数据之前看表的结构哪些数据不能为空或者数据的类型

insert into jobs(job_id,job_title,min_salary,max_salary) values('WK_T','Work Test',1000,5000);

未执行commit之后rollback回滚可以取消插入该条数据,但在commit之后rollback,插入的该条数据还是存在数据库中。

rollback

insert into jobs(job_id,job_title,min_salary,max_salary) values('WK_T','Work Test',1000,5000);
commit;
rollback;

3、update更新数据,有where条件可以对一条或几条数据进行更改,如果没有where就对表所有数据进行更改

update jobs set job_title='Work Test Category A' where job_id='WK_T';
select * from jobs;

4、delete删除数据,有where条件可以删除一条或几条数据,如果没有where就删除整个表的数据;delete删除表数据不释放表空间,所以如果要释放表空间之后要使用truncate,但truncate是整个表数据都删除。

delete from jobs where job_id='WK_T';
select * from jobs;

 

二、DDL

主要该表的结构,有create、alter、rename、truncate、drop

1、create建表

create table test( tid  number(6) not null,tname varchar2(10) not null);
desc test

2、alter添加字段或禁用约束

alter table test add loc varchar2(50);
desc test;

select constraint_name,table_name from user_constraints;
col table_name for a30;
col constraint_name for a30;
/;
alter table DEPARTMENTS disable constraint DEPT_MGR_FK;  //禁用约束

除了上面的还有以下功能

alter table test read only|write;  //设置表为只读,可以通过将其转为视图(视图就是一个查询语句的别名,无存储结构,复杂查询语句简单化)
alter table test drop column loc;

3、rename修改字段名

alter table test rename column loc to location;
desc test;

4、truncate删除整张表的数据,rollback之后也不能恢复数据。

insert into test(tid,tname) values(1,'chen');
insert into test(tid,tname) values(2,'yang');
select * from test;
truncate table test where tid=1;  //错误
truncate table test;
select * from test;

5、drop将整个表删除,包括表的结构,可以从回收站恢复表,但是purge删除之后就不可以从回收站恢复了

insert into test(tid,tname) values(1,'chen');
insert into test(tid,tname) values(2,'yang');
drop table test;
select * from test;  //出现表或视图不存在

desc recyclebin;
select OBJECT_NAME,ORIGINAL_NAME from recyclebin;
flashback table "BIN$5kAmuOkkfJvgU4lkGawVqg==$0" to before drop; //这里BIN..是OBJECT_NAME
select * from test;

drop table test purge;
select OBJECT_NAME,ORIGINAL_NAME from recyclebin;  //没有信息显示

 

三、DCL

 

标签:DCL,rollback,DML,DDL,test,table,数据,alter,select
来源: https://www.cnblogs.com/muhai/p/16587779.html