orical10g实验六

上传人:沈*** 文档编号:114549019 上传时间:2022-06-29 格式:DOC 页数:21 大小:372.79KB
收藏 版权申诉 举报 下载
orical10g实验六_第1页
第1页 / 共21页
orical10g实验六_第2页
第2页 / 共21页
orical10g实验六_第3页
第3页 / 共21页
资源描述:

《orical10g实验六》由会员分享,可在线阅读,更多相关《orical10g实验六(21页珍藏版)》请在装配图网上搜索。

1、成绩大型数据库技术实验报告实验课程:大型数据库技术(Oracle)专业:计算机与信息工程学院班级:姓名:学号:同组人:无实验日期:2014/5/28实验项目实验九索引、视图、序列和同义词实验类型设计性实验目的要求n 创建索引n 使用索引n 理解什么是视图、序列和同义词n 视图、序列和同义词的设计n 创建视图、序列和同义词n 插入值时在表中使用序列(实验内容及步骤)【实验步骤】9.0 实验准备工作若实验4中的基本表和基础测试数据加入工作沿未完成,请参照以下几步予以完成:(1)创建基本表:(2)加入测试数据:参照上图,在Customer表中插入如下的两条记录:9.1 索引(INDEXES)的创建与

2、删除1索引的创建:索引有助于更快地进入表中的列。索引还可以避免输入到列中的值产生重复现象。语法如下:CREATE INDEX indexnameON tablename(columnname)实验9-1 创建一个名为 idx 的、关于City字段的、Customer表的索引。请给出如下所示的语句:练习9-1在Orders表中的Order_date列上创建一个名为 idx 索引,观察会发生什么情况。可以为多个列创建索引。 这样的索引称为“Composite Indexes”(复合索引)。 实验9-2 在Customer表中的 City 列和 Company 列上创建一个名为“comp”的索引,语

3、句如下所示:2索引的删除:给出下列语句可删除索引。DROP INDEX indexname实验9-3 删除创建的索引“idx”,请给出如下的语句:3基于函数的索引:实验9-4 基于函数的索引:执行下列语句,创建一个基于函数的索引,并删除之。4索引相关数据字典:实验9-5 使用索引相关数据字典:(1) 对employees表创建索引于last_name字段:(2) 查询索引信息:给出查询的结果:(3) 监视索引:a.打开索引监视状态: alter index emp_last_name_idx monitoring usage;b. 监视索引emp_last_name_idx: analyze

4、index emp_last_name_idx validate structure;Select br_rows,br_blks,lf_rows,del_lf_rowsFrom index_statsWhere name= emp_last_name_idx;给出运行结果:9.2 完成教材P282实验指导1234569.3实验准备工作若实验4中的基本表和基础测试数据加入工作沿未完成,请参照以下几步予以完成,若已完成实验4中相关练习,并且数据表没有删除,则请直接进入11.1实验。(1)创建基本表:(2)加入测试数据:参照上图,在Customer表中插入如下的两条记录:9.4 视图视图是一个虚拟

5、表,其内容是借助于查询从表中获取的。在这些表中所作的更改自动反映在视图中。语法如下:CREATE VIEW viewname ASSELECT ;注意:ORDER BY 不能与视图一起使用。实验9-6 建立“上海”客户的视图,并取名“Customer_sh”。上面的查询创建一个名为“Customer_sh”的视图。创建视图之后,您可像查看任何表一样查看该视图。请给出如下所示的语句:实验9-7 建立一个名为Order_Sh的包含所有上海客户订单信息的视图,要求在该视图中包括各客户的公司名称、订单代号和订购日期等属性列。 实验9-8 删除名为 Customer_sh的视图。练习11-1 建立一个名

6、为Avg_price的视图,其中包括产品的类别代号及平均价格两项。(相关表请参照实验4)9.5 序列序列用来生成可用作主键的唯一整数。语法如下:CREATE SEQUENCE sequencenameINCREMENT BY START WITH ;n sequencename 是创建的序列的名称;n 是指定的递增数,默认值是 1;n 是序列的开始数。实验9-9 创建名从3开始、步长为1、名为“seqno”的序列。上面的查询创建名为“seqno”的序列,我们也可以在创建序列之后插入值。格式如下:INSERT INTO tablename(sequence column number, colu

7、mnnames)VALUES (sequence name.NEXTVAL, values);n Sequence column number 是您生成序列编号的列名称n Column names 是表的其他列。实验9-10 假定数据库中有一个名为new_ptype的表(若无该表,请建立之),其结构和数据如下图所示:请给出如下所示的语句:说明:上面的INSERT语句在new_ptype表中插入了一个Tno为3的记录,因为序列SEQNO是从3 开始的。实验9-11 给出如下所示的语句可删除创建的序列。9.6同义词同义词是 Oracle 对象的别名。此对象可以是表、视图、程序、函数或另一个同义词。

8、同义词不是实际对象,而是对对象的参考。同义词非常有用,这是因为它们隐藏参考的对象的身份。在重命名对象或修改对象的情况下,这十分有用,因为这样就只需要重新定义同义词。这有助于缩短在项目中所花费的重新编译和修改时间。创建同义词的语法如下:CREATE SYNONYM synonymnameFOR tablename实验9-12 创建一个名为“new”(新)的同义词,该同义词参考Customer表。请给出如下所示的语句:上面的查询中创建的同义词可通过给出下列语句进行查看。SELECT * from new;要删除上面创建的同义词,请给出如下语句。DROP SYNONYM new;作业与思考练习题1、

9、完成以下练习,给出相应的代码:1) 在 emp 表的 empno 字段上创建一个索引。 检查是否可以创建。2) 在 emp 表的 sal 上创建一个索引。3) 删除所创建的索引。2完成教材P295实验指导练习123411-2123453. 完成以下练习:1) 创建一个视图,包括所有的雇员信息,但是隐藏薪水和佣金(津贴)create view vEmp asselect EMPNO,ENAME,JOB,MGR,HIREDATE,DEPTNO from emp2) 创建一个视图,包括部门名和各部门的平均薪水create view v72 asselect dname,avg(sal) avg_sa

10、l from dept,emp where emp.deptno=dept.deptno group by dname3) 锁住empno为7369的雇员,将其名字改为Clinton。更新这一行后,另行开启一个自己用户的会话,也将empno=7369的雇员deptno改为10(部门变动),观察该窗口的反应,等待片刻后,在原窗口使用commit进行提交。观察两个窗口的结果并进行分析。加锁:select * from emp where empno=7369 for update 更新:update emp set ename=clinto where empno=7369在新窗口中输入updat

11、e emp set deptno = 10 where empno=7369无反应当原窗口使用commit进行提交后,新窗口才有反应。但数据没更新过来。4) 创建一个视图,显示部门10中的每一个雇员的姓名、部门号和总收入(sal+comm)、不要通过视图修改部门create view v73 asselect ENAME,DEPTNO,SAL+NVL(COMM,0)sumofdept from emp where DEPTNO=10with read only5) 创建一个视图,显示各部门名和各个部门所有雇员收入的总和create view v74 as select dname,sum(sa

12、l+nvl(comm,0) all_sal from emp,dept where emp.deptno=dept.deptno group by dname6) 创建一个序列deptid_seq,产生部门ID(Dept表中),创建另一个序列empid_seq,产生雇员ID(emp表中)。使用deptid_seq向dept表中新添加一个部门。现在,将自己作为一个新雇员添加进emp表中,其部门是刚才新添加的empid_seq。生成序列deptid_seq 并产生部门IDcreate sequence deptid_seqincrement by 10start with 40生成序列empid_

13、seq 并产生雇员IDcreate sequence empid_seqincrement by 1start with 1插入一行部门数据insert into emp values(empid_seq.nextval, 何知才 ,manager, 7839, 19-11月 -85,5000,1000, deptid_seq.nextval)4完成以下练习:1) 创建一个包含 1982 年 3 月 31 日之后入职的所有雇员的视图。2) 创建一个包含佣金高于其薪金的雇员的视图。3) 创建一个包含所有雇员的雇员编号、雇员名称、部门名称和薪金的视图。4) 创建一个包含所有无权收取佣金的雇员的视图

14、。5) 创建一个包含各种工作的薪金总和的视图。6) 尝试在创建的第三个视图中插入和更新值。注意:某些插入和更新可能不起作用,因为该视图是以两个表为依据的。为消除此缺点,我们将会在 PL/SQL 课题中看到“INSTEAD OF TRIGGER”。7) 创建一个可用来在 dept 表中插入新的 deptno 值,并从 dept 表中的最后一个 deptno 开始的序列。8) 使用上面的序列在 dept 表中插入值。9) 为 emp 表创建一个同义词。10) 在上面创建的同义词中插入值,并观察对基表的影响。11) 列出您所创建的全部视图、同义词、序列。提示:使用数据词典表12) 删除您创建的任何视图的基表,然后尝试查询视图,并观察查询的输出情况。13) 删除您创建的所有视图、同义词、序列。

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!