xsles09-操作数据-dml语句

上传人:小** 文档编号:89363346 上传时间:2019-05-24 格式:PPT 页数:37 大小:373.51KB
返回 下载 相关 举报
xsles09-操作数据-dml语句_第1页
第1页 / 共37页
xsles09-操作数据-dml语句_第2页
第2页 / 共37页
xsles09-操作数据-dml语句_第3页
第3页 / 共37页
xsles09-操作数据-dml语句_第4页
第4页 / 共37页
xsles09-操作数据-dml语句_第5页
第5页 / 共37页
点击查看更多>>
资源描述

《xsles09-操作数据-dml语句》由会员分享,可在线阅读,更多相关《xsles09-操作数据-dml语句(37页珍藏版)》请在金锄头文库上搜索。

1、九.操作数据-DML语句,目标,结束本节课后,应当达到如下目标: 描述每个DML语句 向一个表中插入数据 更新一个表中数据行 从一个表中删除行 控制事务,数据操作语言,DML语句在下列情况下发生: 往一个表中增加新行 更改一个表中现有的行 从一个表中删除掉现有的行 一个事务由一组构成一个逻辑操作的DML语句组成.,向一个表中增加新行,DEPT,DEPTNO DNAME LOC - - - 10 ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO 40 OPERATIONS BOSTON,DEPT,DEPTNO DNAME LOC -

2、- - 10 ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO 40 OPERATIONS BOSTON,INSERT语句,使用 INSERT 语句向表中增加新行. 使用这种方法只能一次插入一行数据.,INSERT INTO table (column , column.) VALUES (value , value.);,插入新行,插入包含每一个列值的新行. 按缺省顺序列出表中所有的列值. 列出 INSERT 子句中所有的列. 日期值和字符值要用单引号括起来.,SQL INSERT INTO dept (deptno, dname

3、, loc) 2 VALUES (50, DEVELOPMENT, DETROIT); 1 row created.,插入带有空值的行,省略的方法: 从列的链表忽略有空值的列.,SQL INSERT INTO dept (deptno, dname ) 2 VALUES (60, MIS); 1 row created.,明确的方法: 指定 NULL 关键字.,SQL INSERT INTO dept 2 VALUES (70, FINANCE, NULL); 1 row created.,插入特殊的值,SYSDATE函数取出当前的日期的时间.,SQL INSERT INTO emp (emp

4、no, ename, job, 2 mgr, hiredate, sal, comm, 3 deptno) 4 VALUES (7196, GREEN, SALESMAN, 5 7782, SYSDATE, 2000, NULL, 6 10); 1 row created.,插入特殊的日期值,增加一个新的员工.,SQL INSERT INTO emp 2 VALUES (2296,AROMANO,SALESMAN,7782, 3 TO_DATE(FEB 3, 1997, MON DD, YYYY), 4 1300, NULL, 10); 1 row created.,检验结果.,EMPNO E

5、NAME JOB MGR HIREDATE SAL COMM DEPTNO - - - - - - - - 2296 AROMANO SALESMAN 7782 03-FEB-97 1300 10,从另一个表中拷贝行,创建带有子查询的 INSERT语句。 不要使用 VALUES 子句. 子查询中的列要与INSERT子句中的列相匹配.,SQL INSERT INTO managers(id, name, salary, hiredate) 2 SELECT empno, ename, sal, hiredate 3 FROM emp 4 WHERE job = MANAGER; 3 rows c

6、reated.,改变一个表中的数据,EMP,EMP,EMPNO ENAME JOB . DEPTNO 7839 KING PRESIDENT 10 7698 BLAKE MANAGER 30 7782 CLARK MANAGER 10 7566 JONES MANAGER 20 .,EMPNO ENAME JOB . DEPTNO 7839 KING PRESIDENT 10 7698 BLAKE MANAGER 30 7782 CLARK MANAGER 10 7566 JONES MANAGER 20 .,UPDATE 语句,使用 UPDATE 语句更改现有的行. 如果需要,可以一次更改多

7、行.,UPDATE table SET column = value , column = value, . WHERE condition;,更改表中的行,使用 WHERE 子句来指定要修改的行. 如果忽略WHERE子句,那么句子中所有的值都将被更改.,SQL UPDATE emp 2 SET deptno = 20 3 WHERE empno = 7782; 1 row updated.,SQL UPDATE employee 2 SET deptno = 20; 14 rows updated.,用多列子查询进行修改,SQL UPDATE emp 2 SET (job, deptno)

8、= 3 (SELECT job, deptno 4 FROM emp 5 WHERE empno = 7499) 6 WHERE empno = 7698; 1 row updated.,更改第 7698号雇员的工作和部门,以与第 7499号雇员进行匹配.,对基于另一个表的行进行更改,在 UPDATE语句中,使用子查询来更进行更改,更改的数据与其它表中的数据有关.,SQL UPDATE employee 2 SET deptno = (SELECT deptno 3 FROM emp 4 WHERE empno = 7788) 5 WHERE job = (SELECT job 6 FROM

9、emp 7 WHERE empno = 7788); 2 rows updated.,从一个表中移去一行,DEPT,DEPTNO DNAME LOC - - - 10 ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO 40 OPERATIONS BOSTON 50 DEVELOPMENT DETROIT 60 MIS .,DELETE语句,可以使用 DELETE 语句从表中删去现存的行.,DELETE FROM table WHERE condition;,使用 WHERE 子句以指定哪些行应当被删去. 如果忽略WHERE 子句,那

10、么表中所有的数据.,从一个表中删去行,SQL DELETE FROM department 2 WHERE dname = DEVELOPMENT; 1 row deleted.,SQL DELETE FROM department; 4 rows deleted.,参照另一个表来删除行,使用子查询,使得 DELETE 语句能从另一个表中删除某些行.,SQL DELETE FROM employee 2 WHERE deptno = 3 (SELECT deptno 4 FROM dept 5 WHERE dname =SALES); 6 rows deleted.,数据库事务,要么全部完成,

11、要么全部废弃的操作集合。 一个事务可以包含下列语句: 对数据做出一致性修改的DML语句。 一个 DDL 语句 一个 DCL语句,数据库事务,以第一个可执行的 SQL 语句开始。 以下列情况结束: 执行COMMIT 或者 ROLLBACK 语句 执行DDL或者 DCL语句 用户退出 系统崩溃,COMMIT和ROLLBACK语句的优点,保证数据的一致性 在数据永久改变之前,检查数据的改变 对逻辑相关的操作进行分组,控制事务,事务,保存点A,保存点B,提交,UPDATE,INSERT,在下列环境下,一个自动提交发生: 处理DDL语句 处理DCL 语句 从 SQL*Plus中退出, 而没有明确指定CO

12、MMIT或者 ROLLBACK 当 SQL*Plus中断或者系统失败时自动进行回滚.,隐式事务处理,在COMMIT 或ROLLBACK之前的数据状态,之前的状态可以被恢复. 当前的用户可以用SELECT语句来查看DML操作后的结果. 其它用户看不到当前用户使用 DML语句进行数据操纵的结果. 产生改变的数据被加锁,其它用户不能改变这些行.,在 COMMIT之后的数据状态,数据的改变将被永久的反应到数据库中去. 事务前面的数据状态将被永久地丢弃. 所有的用户可以查看结果. 加在产生改变的行上的数据被解锁; 这些行对于其他用户是可用的. 所有的保存点被释放.,提交数据,SQL UPDATE emp

13、 2 SET deptno = 10 3 WHERE empno = 7782; 1 row updated.,产生改变.,Commit the changes.,SQL COMMIT; Commit complete.,回滚后的数据状态,使用 ROLLBACK语句丢弃所有的数据改变. 数据的改变失效. 事务之前的数据状态改变. 在改变行的上的锁被释放.,SQL DELETE FROM employee; 14 rows deleted. SQL ROLLBACK; Rollback complete.,回滚到某个标记,使用 SAVEPOINT语句在当前事务中产生一个标记. 使用ROLLBAC

14、K TO SAVEPOINT语句回滚到那个标记.,SQL UPDATE. SQL SAVEPOINT update_done; Savepoint created. SQL INSERT. SQL ROLLBACK TO update_done; Rollback complete.,锁定,Oracle 锁: 在并发事务之间,阻止可能产生的破坏性相互影响。 不需要用户进行干预,自动使用。 在事务期间使用,事务结束时释放。 有两种基本的模式: 排它 共享,总结,描述 向表中增加一个新的行 更改表中现存的行 从表中删除现存的行 提交一个事务 允许回滚到保存点标记 废弃所有未提交的改变,语句 INSERT UPDATE DELETE COMMIT SAVEPOINT ROLLBACK,作业概览,向表中插入数据行 修改和删除表中的数据行 控制事务,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号