77范文网 - 专业文章范例文档资料分享平台

OCP认证考试指南全册Oracle Database 11g练习与知识点 - 图文(10)

来源:网络收集 时间:2019-08-28 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

? ? ? ?

复杂视图可以基于任何SELECT语句,不管多么复杂

视图是模式对象。要在另一个模式中使用视图,必须用模式名限定视图名 可以像查询表一样查询视图

可以将视图联接到其它视图或者联接到表,它们可以被聚合,在有些情况下它们可以接受DML语句。

? 视图仅作为数据字典结构存在。每当查询视图时,必须运行底层的SELECT语句。

同义词

? 同义词是视图或表的另一个名称 ? 私有同义词是模式对象,公有同义词存在于用户模式之外,不需要指定模式名作为限定

符就可以使用。

? 同义词与视图和表共享相同的名称空间,因此可以与它们交互使用。 序列

? 序列生成唯一值——除非指定了MAXVALUE或MINVALUE和CYCLE ? 递增序列不需要提交,不能被回滚

? 任何会话都能通过读取它的下一个值来递增序列。可以获得上次发送给会话的值,但不

能获得上次发出的值。

第八章 DML与并发性

本章学习内容

? ? ? ? ? ? ? ? ? ? ?

描述各种数据操作语言(Data Manipulation Language, DML)语句 在表中插入行 更新表中的行 从表中删除行 控制事务

使用DML管理数据

识别和管理PL/SQL对象 监视和解决锁定冲突 解释撤销的作用

了解事务的撤销生成方式 管理撤销

练习8-1 使用INSERT命令

在这个练习中,我们将使用各种方法在表中插入行

(1) 使用SQL Developer或者SQL*Plus,连接到WEBSTORE模式

(2) 查询PRODUCTS、ORDERS、和ORDER_ITEMS表,确认当前存储了哪些数据

SELECT * FROM products; SELECT * FROM orders; SELECT * FROM order_items; (3) 向PRODUCTS表中插入两行,并依次提供值

INSERT INTO PRODUCTS VALUES (PROD_SEQ.NEXTVAL, '11G SQL EXAM Guide', 'ACTIVE', 60, SYSDATE, 20); INSERT INTO PRODUCTS VALUES (PROD_SEQ.NEXTVAL, '11G ALL-in-One Guide', 'ACTIVE', 100, SYSDATE, 40); (4) 向ORDERS表中插入两行,并显示提供列名 INSERT INTO orders (order_id, order_date, order_status, order_amount, customer_id) VALUES (order_seq.nextval, SYSDATE, 'COMPLETE', 3, 2); INSERT INTO orders (order_id, order_date, order_status, order_amount, customer_id) VALUES (order_seq.nextval, SYSDATE, 'PENDING', 5, 3);

(5) 向ORDER_ITEMS表中插入三行,使用替代变量:

INSERT INTO order_items VALUES (&item_id, &order_id, &product_id, &quantity); 当系统提示时,提供值{1,1,2,5}、{2,1,1,3}、{1,2,2,4}

(6) 向PRODUCTS表中插入一行,计算PRODUCT_ID使它比当前的最大值还高100.

这需要使用一个标量子查询: INSERT INTO PRODUCTS VALUES ((SELECT MAX(PRODUCT_ID) + 100 FROM PRODUCTS), '11G DBA2 Exam Guide', 'INACTIVE', 40, SYSDATE - 365, 0); (7) 确认插入的行 SELECT * FROM products; SELECT * FROM orders; SELECT * FROM order_items;

(8) 提交插入: COMMIT; 练习8-2 使用UPDATE命令

在这个练习中,我们将使用各种方法更新表中的行。假设WEBSTORE.PRODUCTS表与【练习8-1】中图一样。

(1) 使用SQL Developer 或者SQL*Plus,连接到WEBSTORE模式 (2) 更新由主键确定的一行

UPDATE products SET product_description = 'DBA1 Exam Guide' WHERE product_id = 102; 这条语句应该返回消息“1 row updated”

(3) 使用不相等谓词并提供值,更新一组行 UPDATE products

SET product_id = (1 + (SELECT MAX(product_id) FROM products WHERE product_id <> 102)) WHERE product_id = 102; 这条语句返回消息“1 row updated” (4) 确认行的状态

SELECT * FROM products; (5) 提交所作的变更: COMMIT; 练习8-3 使用DELETE命令

在这个练习中,我们将使用各种方法删除表中的行。

(1) 使用SQL Developer 或者SQL*Plus,连接到WEBSTORE模式 (2) 在主键上使用相等谓词来删除一行 DELETE FROM products WHERE product_id = 3; (3) 尝试通过省略WHERE子句来删除表中所有行 DELETE FROM products; ORA-02292: integrity constraint (OCP11G.FK_PRODUCT_ID) violated - child record found 这条语句会失败,因为它违反约束,ORDER_ITEMS表中有子记录通过外键FK_PRODUCT_ID引用PRODUCTS表中的PRODUCT_ID值。 (4) 提交删除 COMMIT; 练习8-4 使用DML管理数据

本练习将示范事务隔离和控制。使用两个SQL*Plus会话(也可以使用SQL Developer),都以用户SYSTEM的身份连接。按正确顺序运行两个会话在表中的命令。 步骤 1 2 3 4 第一个会话 CREATE TABLE t1 AS SELECT * FROM all_users; SELECT COUNT(*) FROM t1; DELETE FROM t1; SELECT COUNT(*) FROM t1; SELECT COUNT(*) FROM t1; 第二个会话 两个会话的结果相同 SELECT COUNT(*) FROM t1; 两个会话的结果不同,因为事务隔离隐藏了变更 ROLLBACK; 5 6 7 8 9 SELECT COUNT(*) FROM t1; DELETE FROM t1; SELECT COUNT(*) FROM t1; SELECT COUNT(*) FROM t1; 两个会话的结果相同 SELECT COUNT(*) FROM t1; CREATE VIEW v1 AS SELECT * FROM t1;

10 11 12 13 14 SELECT COUNT(*) FROM t1; ROLLBACK; SELECT COUNT(*) FROM t1; DROP VIEW v1; DROP TABLE t1; SELECT COUNT(*) FROM t1; SELECT COUNT(*) FROM t1; DDL语句提交DELETE,因此它不能回滚 练习8-5 创建PL/SQL对象

本练习使用Database Control创建PL/SQL 对象,并且在SQL*Plus中执行这些对象。 (1) 使用SQL*Plus,以用户SYSTEM的身份连接数据库 (2) 创建一个本练习将要使用的表 CREATE TABLE integers(c1 NUMBER, c2 VARCHAR2(5)); (3) 使用Database Control,以用户SYSTEM的身份连接数据库。

(4) 在数据库的主页上选中Schema选项卡,单击Programs部分的Packages链接,然后

单击Create按钮。

(5) 在Create Package窗口中,输入程序包的名称NUMBERS以及用于该程序包的源代

码。单击OK创建这个程序包。

CREATE OR REPLACE PACKAGE numbers IS FUNCTION odd_even(v1 NUMBER) RETURN VARCHAR2; PROCEDURE ins_ints(v1 IN NUMBER); END numbers; (6) 在数据库的主页上选中Schema选项卡,单击Programs部分的Packages Bodies链接,

然后单击Create按钮。

(7) 在Create Package Body窗口中,输入程序包的名称NUMBERS以及用于该程序包主

体的源代码。单击OK按钮创建这个程序包主体。 CREATE OR REPLACE PACKAGE BODY numbers IS FUNCTION odd_even(v1 NUMBER) RETURN VARCHAR2 AS BEGIN IF MOD(v1, 2) = 0 THEN RETURN 'even'; ELSE RETURN 'odd'; END IF; END odd_even; PROCEDURE ins_ints(v1 IN NUMBER) AS BEGIN FOR i IN 1 .. v1 LOOP INSERT INTO integers VALUES (i, odd_even(i)); END LOOP; END ins_ints; END numbers; (8) 在SQL*Plus会话中描述这个程序包,执行该过程并检查结果

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库OCP认证考试指南全册Oracle Database 11g练习与知识点 - 图文(10)在线全文阅读。

OCP认证考试指南全册Oracle Database 11g练习与知识点 - 图文(10).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/jiaoyu/688776.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: