第五章 操纵数据.ppt_第1页
第五章 操纵数据.ppt_第2页
第五章 操纵数据.ppt_第3页
第五章 操纵数据.ppt_第4页
第五章 操纵数据.ppt_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第五章,数据操作,学习目的,完成本章之后,我们可以掌握以下的内容: 描述各种类型的 DML 语句 插入行到表里面 更新表里面的行 删除表里面的行 控制事务,数据操作语言,一个DML 语句被执行,当我们进行: 加新行到表里面 修改表里面已存在的行 从表里面删除行 一个事务(transaction)是一个DML语句的集合,形成一个工作的逻辑单位,加新行到表里面,DEPT,DEPTNO DNAME LOC - - 10ACCOUNTINGNEW YORK 20RESEARCHDALLAS 30SALESCHICAGO 40OPERATIONSBOSTON,DEPT,DEPTNO DNAME LOC

2、- - 10ACCOUNTINGNEW YORK 20RESEARCHDALLAS 30SALESCHICAGO 40OPERATIONSBOSTON,INSERT语句,用INSERT语句加新行到表里面. 每次只能插入一行.,INSERT INTOtable (column , column.) VALUES(value , value.);,插入一个新的行,SQL INSERT INTOdept (deptno, dname, loc) 2 VALUES(50, DEVELOPMENT, DETROIT); 1 row created.,SQL INSERT INTOdept 2 VALUE

3、S(70, FINANCE, NULL); 1 row created.,SQL INSERT INTOemp (empno, ename, job, 2mgr, hiredate, sal, comm, 3deptno) 4 VALUES(7196, GREEN, SALESMAN, 57782, SYSDATE, 2000, NULL, 610); 1 row created.,从其它表拷贝数据,SQL INSERT INTO managers(id, name, salary, hiredate) 2 SELECTempno, ename, sal, hiredate 3 FROM em

4、p 4 WHEREjob = MANAGER; 3 rows created.,改变表里面的数据,EMP,EMP,EMPNO ENAME JOB . DEPTNO 7839KINGPRESIDENT 10 7698BLAKEMANAGER 30 7782CLARKMANAGER 10 7566JONESMANAGER 20 .,EMPNO ENAME JOB . DEPTNO 7839KINGPRESIDENT 10 7698BLAKEMANAGER 30 7782CLARKMANAGER 10 7566JONESMANAGER 20 .,UPDATE 语句,用 UPDATE语句修改 可以同时

5、修改多个行,UPDATEtable SETcolumn = value , column = value WHERE condition;,Update一个表里面的数据,SQL UPDATE emp 2 SET deptno = 20 3 WHERE empno = 7782; 1 row updated.,SQL UPDATE employee 2 SET deptno = 20; 14 rows updated.,Update-多行子查询子句,SQL UPDATE emp 2 SET (job, deptno) = 3 (SELECT job, deptno 4 FROM emp 5 WH

6、ERE empno = 7499) 6 WHERE empno = 7698; 1 row updated.,从表里面删除数据,DEPT,DEPTNO DNAME LOC - - 10ACCOUNTINGNEW YORK 20RESEARCHDALLAS 30SALESCHICAGO 40OPERATIONSBOSTON 50DEVELOPMENTDETROIT 60MIS .,DELETE 语句,DELETE FROM table WHERE condition;,从表里面删除数据,SQL DELETE FROMdepartment 2 WHERE dname = DEVELOPMENT;

7、1 row deleted.,SQL DELETE FROMdepartment; 4 rows deleted.,根据另外一个表删除数据,SQL DELETE FROMemployee 2 WHEREdeptno = 3 (SELECT deptno 4 FROM dept 5 WHERE dname =SALES); 6 rows deleted.,这里的子查询是一个条件,数据库事务(Transactions),一个事务包括以下的语句: DML 语句 DDL 语句 DCL 语句,数据库事务(Transactions),当交易里面第一个可执行的sql语句被执行时开始一个交易 当以下事件发生时

8、候结束: COMMIT或 ROLLBACK DDL 或 DCL 语句执行时 (自动 commit) 用户退出 系统崩溃,COMMIT 和 ROLLBACK的好处,确保数据一致性 在永久修改数据之前可以先预览 把相关的操作组成一个逻辑的整体,控制事务,Savepoint A,Savepoint B,COMMIT,UPDATE,INSERT,transaction,隐式事务处理,在以下环境下自动提交(commit)发生: 一个 DDL 语句被执行 一个DCL 语句被执行 正常退出SQL*Plus 当非正常退出SQL*Plus 或系统失败时,一个自动的回滚rollback 发生,COMMIT或ROL

9、LBACK之前数据的状态,当前用户能够用select语句看到DML语句修改的结果 其它用户无法看到当前用户DML语句的结果 被影响的数据被锁住;其它用户无法修改被影响的数据,COMMIT之后数据的状态,数据被永久的修改. 数据之前的状态永久的丢失. 所有用户可以看到数据修改之后的结果. 释放对被影响的行的锁,提交数据(COMMIT Data),SQL UPDATEemp 2 SET deptno = 10 3 WHEREempno = 7782; 1 row updated.,修改,提交,SQL COMMIT; Commit complete.,ROLLBACK之后数据的状态,用ROLLBAC

10、K 来取消对数据的修改 数据的修改被取消. 数据原先的状态被恢复. 释放对被影响的行的锁.,SQL DELETE FROMemployee; 14 rows deleted. SQL ROLLBACK; Rollback complete.,回滚到一个标记,在当前的交易里面用SAVEPOINT建立一个标记 用ROLLBACK TO SAVEPOINT 回滚到那个标记,SQL UPDATE. SQL SAVEPOINT update_done; Savepoint created. SQL INSERT. SQL ROLLBACK TO update_done; Rollback complete.,读的一致性,读的一致性确保在所有时间都有一个数据的一致性视图 一个用户所作的更变不会与另外一个用户所作的改变相冲突,实现读的一致性,UPDATE empSET sal = 2000 WHERE ename = SCOTT;,Datablocks,Rollbacksegments,changedand unchanged data,before change“old” data,User A,User B,Readconsistentimage,SELECT *FROMemp;,锁

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论