成绩。
Create or replace view xs_view(姓名,选课门数,平均成绩) as select
xm,count(kch),avg(cj) from cjb,xsb where xsb.xh=cjb.xh group by xsb.xh,xm;
6、删除zy_view视图。 Drop view zy_view;
四、上机作业
完成实验内容中的任务,并把语句记录在每道题的下面。
五、心得体会
这次学习,我知道了对表的内容的查询,修改的操作,并通过实践对这次操作命令进一步的熟悉,运用和掌握。还学会了怎么建立视图,视图是可以快速的查询多个表的不同的信息的图表,它使我们更方便。
实验六:索引和约束
一、实验目标:
(1)掌握索引的使用方法。
(2)掌握各种约束即数据完整性的实现方法。
二、实验学时数 2学时
三、实验步骤和内容: 1.关于索引
第21页
建立索引的最大好处是快速存取数据。
假设有10个学生,10门课,则成绩表会有100条记录,对于成绩表中某人某门课成绩的查找,最坏情况是逐行查找100次,即最后一行。而如果对成绩表中的学号和课程号创建索引,则最坏情况只需查找20次(先查找学号,再查找课程号)。
建立索引的原则: (1)先插数据再建索引。
(2)如果经常检索的内容仅为包含大量数据的表中少于15%的行,就需要创建索引。
(3)建立索引的先后顺序会影响查询的性能。 2.创建索引表空间 CREATE TABLESPACE INDX
DATAFILE
'D:\\oracle\\product\\10.2.0\\oradata\\xscj\\indx01.dbf' SIZE 32M REUSE
AUTOEXTEND ON NEXT 1280K MINIMUM EXTENT 128K DEFAULT STORAGE
(INITIAL 128K NEXT 128K MINEXTENTS 1 MAXEXTENTS 4096 PCTINCREASE 0);
2.创建索引
CREATE INDEX kc_name_idx
ON KCB(KCM) TABLESPACE \3.维护索引
第22页
ALTER INDEX kc_name_idx
4.删除索引 DROP INDEX kc_idx; 5.数据完整性
生活中有些数据除了数据类型和宽度,还必须要定义其他规则的,比如学生学号必须是唯一的,不能重复的;性别必须是男或女,成绩必须是0-100的范围等。因此必须使用一些方法对数据进行约束,才得以保持数据完整性。
6.约束
(1)建表同时添加约束: XSB表: 主键为学号。 KCB表: 课程号为主键,
开课学期默认值为1,且只能为1-8。 CJB表
主键为学号和课程号, 存在外键XH参照XSB表的XH, 存在外键KCH参照KCB表的KCH。 (2)建表后时添加约束 XSB表:
第23页
RENAME TO kc_idx;
性别必须为“男”或者“女”。 CJB表:
成绩必须>=0且<=100或者为空。 7.插入数据验证。 8.思考题
(1)建KCB表时添加约束,使课程号必须为三位0-9数字
(2)建XSB表时添加约束,使学号为101开头,后三位为0-9数字 四、上机作业
完成实验内容中的任务,并把语句记录在每道题的下面。 五、心得体会
通过这次的学习,我知道了索引的最大好处是快速存取数据。1:先插数据再建索引。2:如果经常检索的内容仅为包含大量数据的表中少于15%的行,就需要创建索引。3:建立索引的先后顺序会影响查询的性能。这3条是建立索引的原则。
我还知道了可以增加约束,就是制约范围。
实验七:PL/SQL编程
一、实验目标:
(1)掌握变量、运算符以及控制语句的使用。 (2)掌握系统函数和自定义函数的使用。 二、实验学时数 4学时
三、实验步骤和内容: SYS登录,先导入数据字典:
第24页
@D:\\oracle\\product\\10.2.0\\db_1\\RDBMS\\ADMIN\\catalog.sql; @D:\\oracle\\product\\10.2.0\\db_1\\RDBMS\\ADMIN\\catproc.sql; (1)定义变量
例子1:定义一个长度为10的变量count,其初始值为1,是varchar2类型。
count varchar2(10) := '1';
例子2:在表XSB中包含XH列,为了声明一个变量my_xh与XH列具有相同的数据类型,声明时可使用点和%TYPE属性,格式如下:
my_xh XSB.XH%TYPE;
例子3:可以使用%ROWTYPE属性声明描述表的行数据的记录。
如:声明一个记录名为cj_rec,它与CJB表具有相同的名称和数据类型,格式如下:
DECLARE
cj_rec CJB%ROWTYPE;
对于用户定义的记录,必须声明自己的域: DECLARE
TYPE TimeRec IS RECORD(HH number(2),MM number(2)); (2)程序块
例子6.6:查询总学分大于50的学生人数 set serveroutput on DECLARE
v_num number(3);
第25页
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库Oracle实验报告(6)在线全文阅读。
相关推荐: