Sql_Lab4 视图、序列、同义词和索引

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

SQL实验四视图、序列、同义词和索引

实验目标:

⏹创建视图

⏹创建序列

⏹插入值时在表中使用序列

⏹创建同义词

⏹创建索引

4.1 视图

视图是一个虚拟表,其内容是借助于查询从表中获取的。在这些表中所作的更改自动反映在视图中。语法如下:

CREATE VIEW viewname AS

SELECT

注意:ORDER BY 不能与视图一起使用。

实验4-1 建立“上海”客户的视图,并取名“Customer_sh”。

上面的查询创建一个名为“Customer_sh”的视图。创建视图之后,您可像查看任何表一样查看该视图。请给出如下所示的语句:

实验4-2 建立一个名为Order_Sh的包含所有上海客户订单信息的视图,要求在该视图中包括各客户的公司名称、订单代号和订购日期等属性列。

实验4-3 删除名为 Customer_sh的视图。

4.2 序列

序列用来生成可用作主键的唯一整数。语法如下:

CREATE SEQUENCE sequencename

INCREMENT BY

START WITH

⏹sequencename 是创建的序列的名称;

是指定的递增数,默认值是 1;

是序列的开始数。

实验4-4 创建名从3开始、步长为1、名为“seqno”的序列。

上面的查询创建名为“seqno”的序列,我们也可以在创建序列之后插入值。格式如下:

INSERT INTO tablename(sequence column number, columnnames)

VALUES (sequence name.NEXTVAL, values);

⏹Sequence column number是您生成序列编号的列名称

⏹Column names是表的其他列。

实验4-5 假定数据库中有一个名为new_ptype的表,其结构和数据如下图所示:

请给出如下所示的语句:

说明:上面的INSERT语句在new_ptype表中插入了一个Tno为3的记录,因为序列SEQNO是从3 开始的。

实验4-6给出如下所示的语句可删除创建的序列。

4.3同义词

同义词是 Oracle 对象的别名。此对象可以是表、视图、程序、函数或另一个同义词。同义词不是实际对象,而是对对象的参考。同义词非常有用,这是因为它们隐藏参考的对象的身份。在重命名对象或修改对象的情况下,这十分有用,因为这样就只需要重新定义同义词。这有助于缩短在项目中所花费的重新编译和修改时间。

创建同义词的语法如下:

CREATE SYNONYM synonymname

FOR tablename

实验4-7 创建一个名为“new”(新)的同义词,该同义词参考Customer表。请给出如下所示的语句:

上面的查询中创建的同义词可通过给出下列语句进行查看。

SELECT * from new;

要删除上面创建的同义词,请给出如下语句。

DROP SYNONYM new;

4.4 索引(INDEXES)

索引有助于更快地进入表中的列。索引还可以避免输入到列中的值产生重复现象。

语法如下:

CREATE INDEX indexname

ON tablename(columnname)

实验4-8 创建一个名为 idx 的、关于City字段的、Customer表的索引。请给出如下所示的语句:

可以为多个列创建索引。这样的索引称为“Composite Indexes”(复合索引)。

实验4-9假定我们要在Customer表中的 City 列和 Company 列上创建一个名为“comp”的索引,请给出如下所示的语句:

给出下列语句可删除索引。

DROP INDEX indexname

实验4-10 删除创建的索引“idx”,请给出如下的语句:

对于下一个 1 小时:

1.创建一个包含 1982 年 3 月 31 日之后入职的所有雇员的视图。

2.创建一个包含佣金高于其薪金的雇员的视图。

3.创建一个包含所有雇员的雇员编号、雇员名称、部门名称和薪金的视图。

4.创建一个包含所有无权收取佣金的雇员的视图。

5.创建一个包含各种工作的薪金总和的视图。

6.尝试在创建的第三个视图中插入和更新值。

注意:某些插入和更新可能不起作用,因为该视图是以两个表为依据的。为消除此缺点,我们将会在 PL/SQL 课题中看到“INSTEAD OF TRIGGER”。

7.创建一个可用来在 dept 表中插入新的 deptno 值,并从 dept 表中的最后一个 deptno

开始的序列。

8.使用上面的序列在 dept 表中插入值。

9.为 emp 表创建一个同义词。

10.在上面创建的同义词中插入值,并观察对基表的影响。

11.在 emp 表的 empno 字段上创建一个索引。检查是否可以创建。

12.在 emp 表的 sal 上创建一个索引。

13.列出您所创建的全部视图、同义词、序列和索引。[提示:使用数据词典表]

14.删除您创建的任何视图的基表,然后尝试查询视图,并观察查询的输出情况。

15.删除您创建的所有视图、同义词、序列和索引。

此页有意留为空白

相关文档
最新文档