sql语言学习(五)

rollback  ;撤销上一次操作
create table emp2 as select * from emp;创建一张与emp一样的表emp2


desc dept ;描述dept这张表的数据类型
insert into dept values(50,'game','bj'); 插入
insert into dept (deptno,dname) values(60,'game') ;只插入deptno和dname两项
insert into dept2 select * from dept; 将表dept的内容插入dept2


部门编号为10的职员薪水提一倍,并在名字后加一横线:
update emp set sal = sal*2,ename = ename||'-' where deptno = 10;


delete from emp;将emp中所有记录都删除
delete from emp where deptno < 25;将deptno小于25的记录都删除


create table t (a varchar2(10));


事务控制语句:要么同时完成,要么不完成
一系列的update,delete,insert操作,被oracle认为是一个事务。
一个dml语句认为是一个事务的开始,例如:
update emp set sal = sal*2; 开始一个transaction
delete from dept2;
insert into salgrade values(6,10000,20000);
rollback;上面的一系列操作都撤销了


事务控制语句何时结束:
(1)commit;提交,确认操作并结束transaction
(2)rollback;撤销事务控制语句(如果已经commit则无法撤销)
(3)执行ddl语句或dcl语句,事务字自动提交。如:
update dept2 set deptno = deptno*2;
create table t(a varchar2(20));执行一个ddl语句
rollback;此时rollback无法撤销之前的update操作,因为执行了ddl语句后自动提交了事务控制语句
(4)当用户正常断开连接时,transaction会自动提交,如运行了:
exit ;退出,断开连接
     则事务控制语句自动提交
     但是如果是非正常连接,例如直接关闭窗口,或者电脑强行关机,则transaction不会提交,自动


撤销之前的操作。

你可能感兴趣的:(oracle,sql,table,delete,insert,语言)