实验八
-- 实验8 索引、视图实验
-- 一、视图实验
-- 1、创建视图V_course,存放学生选课基本信息,包括学号、课程号、学分、课程类型,并且各列用中文字段显示。
CREATE OR REPLACE VIEW V_course (学号, 课程号, 学分, 课程类型)
AS
SELECT s_id, c.course_id, course_credit, course_type
FROM course c, s_c s
WHERE s.course_id = c.course_id
-- 2、修改视图V_course,在已有选课信息的基础上增加课程名称列。
CREATE OR REPLACE VIEW V_course (学号, 课程号, 学分, 课程类型, 课程名称)
AS
SELECT s_id, c.course_id, course_credit, course_type, course_name
FROM course c, s_c s
WHERE s.course_id = c.course_id;
-- 3、创建视图V_student1,按班级编号升序存放学生信息。
CREATE OR REPLACE VIEW V_student1
AS
SELECT *
FROM student
ORDER BY c_id;
-- 4、创建视图V_student2,存放“机械工程系”学生的相关信息,包括学号、姓名、系部名称、课程名称、成绩,且成绩高于80分。
CREATE OR REPLACE VIEW V_student2 (学号, 姓名, 课程名称, 成绩)
AS
SELECT sc.s_id, s_name, course_name, grade
FROM student s, s_c sc, course c
ORDER BY sc.s_id = s.s_id AND sc.course_id = c.course_id;
-- 5、要求创建一个行列子集视图V_SC1和V_SC2,给出选课成绩合格的学号、课程号和成绩。
-- 要求:V_SC1使用with check option,V_SC2不使用with check option。
-- 6、创建一个视图V_SCT,该视图由学生姓名、他所选修的课程名、讲授该课程的教师姓名构成。
CREATE OR REPLACE VIEW V_SCT (学生姓名, 课程名, 教师名)
ASb
SELECT s_name, course_name, t_name
FROM student s, s_c sc, course c, teacher t, t_c tc
WHERE s.s_id = sc.s_id AND sc.course_id = c.course_id AND tc.course_id = c.course_id AND tc.t_id = t.t_id;
-- 7、创建视图V_SCC,由学生姓名、所选课程名、所有课程成绩都比原来多5分这几个属性组成。
-- 8、创建视图S_G,由学生的学号及他的平均成绩组成
-- 9、基于1中建立的视图V_course2,创建包括学号、学生所选课程数目和平均学分的视图。
-- 10、在视图V_SCT中查询所有选修课程“数据库原理与应用”的学生的姓名
-- 11、插入元组(‘2016010101’,‘001’,59)到视图V_SC1和V_SC2中,分析观察with check option子句对插入操作的影响
-- 12、将视图V_SC1(带有with check option)中所有课程编号为001的课程的成绩都减去5分。
-- 这个操作数据库是否会正确,为什么?
-- 如果加上5分(原来95分以上的不变)呢?
-- 请操作后分析结果。
-- 13、将视图V_SC1(带有with check option)删除学号为2016010101学生的记录。
-- 14、查看视图v_sct和视图v_sc1
-- 15、删除视图V_SCT和视图V_SC1
-- 二、索引实验
-- 使用SQL命令完成索引的创建与删除
-- (1)在course表的course_name和course_credit列上创建组合索引,名称为IX_course
-- (2)在s_c表的grade列上创建索引(降序),名称为IX_grade
--
-- (3)查看course表的索引信息
-- (4)删除刚刚创建的索引IX_ course 和IX_grade
--
--
--
没有什么能阻止我对知识的追求!!!

浙公网安备 33010602011771号