01-06 Oracle数据开发技术之DML、DDL、完整性约束和序列(BOBO)(完成).docxVIP

  • 1
  • 0
  • 约6.23万字
  • 约 64页
  • 2023-06-13 发布于北京
  • 举报

01-06 Oracle数据开发技术之DML、DDL、完整性约束和序列(BOBO)(完成).docx

第九章:DML语句和事务 9.1DML数据操纵语言(Data Mainpulation Language) 9.1.1insert语法 insert into 表名称 [(列名称1,列名称2,……)] values (值1,值2,…); insert into 表名称 [(列名称1,列名称2,……)] 子查询 9.1.2update语法 update 表名 set 字段=值 [,字段=值,…] [where 更新条件(s)] 9.1.3delete语法 delete from 表名称 [where 删除条件] 9.1.4实例 select * from emp; 实例9.1 向emp表增加一条记录全记录 insert into emp(empno,ename,job,mgr,hiredate,sal,comm,deptno) values(8888,张三,经理,7788,add_months(sysdate,-3),2000,NULL,10) 实例9.2 向emp表增加一条记录非全记录 insert into emp(empno,ename,hiredate) values(9999,李四,to_date(1999-09-09,yyyy-mm-dd)) 实例9.3 批量插入 步骤1:将emp表的数据批量插入emp1表中 create table emp1 as select * from emp; 查询结果 select * from emp1; 步骤2:删除emp1的所有数据 delete from emp1; 查询结果 select * from emp1; 步骤3:彻底删除emp1表 drop table emp1 purge 查询结果 select * from emp1; 步骤4:创建一个跟emp表头一样的表emp1,没有数据 create table emp1 as select * from emp where 1=2 查询结果 select * from emp1; 步骤5:将emp表的10部门的数据批量插入emp1表中 insert into emp1 select * from emp where deptno = 10; 查询结果 select * from emp1; 实例9.4 不加列名增加记录 insert into emp1 values(5555,null,null,null,null,null,null,null); 查询结果 select * from emp1; 实例9.5 删除9.4增加的记录 delete from emp1 where empno = 5555 查询结果 select * from emp1; 实例9.6 更新用户信息 update emp set ename = 李四,job = 办事员 where ename = 张三 查询结果 select * from emp; 9.2事务概念 事务是只一个session所进行的所有更新操作要么一起成功,要么一起失败。 事务具有:原子性、一致性、隔离性和持久性。 原子性:原子性是指事务最小的不可再分割的操作单元,事务中的操作要么一起成功,要么一起失败。 一致性:指的是数据库操作的前后是完全一致的,保证数据的有效性。如果事务失败后要回到事务操作前的状态。 隔离性:多个事务可以同时进行且彼此之间无法访问,只有当事务完成最终操作的时候,才可以看见结果。 持久性:当一个系统崩溃时,一个事务依然可以坚持提交;当一个事务完成后,操作的结果依然保存在磁盘中,永远不会被回滚。Logbuff日志缓冲区,Databuff数据缓冲区。插入1条记录,执行提交,先写到Logbuff,达到Logbuff三分之一时,之后再写到Databuff,之后再写到Datafile。数据库在启动的时候,有一个过程叫实例恢复,如果发现Logbuff里面有记录,但是Datafile中没有,所以需要重写Datafile和控制文件。 事务操作指令 set autocommit off //关闭事务自动提交,环境变量 set autocommit on //打开事务自动提交,环境变量 commit //提交事务 savepoint 事务保存点名称 //设置事务保存点 rollback to [回滚点] //回滚事务 实例9.7 通过两个session的操作,体现事务隔离性 以下是session 1的操作 [root@oracle 桌面]# su - oracle [oracle@oracle ~]$ sqlplus scott/tiger SQL*Plus: Release 11.2

文档评论(0)

1亿VIP精品文档

相关文档