数据库实验9
2023-12-15 11:43:13
实验报告(九)
1、实验目的
(1)????掌握视图的创建与删除
(2)????掌握视图的查询与修改
(3)????理解视图与基表的区别和联系
2、实验预习与准备
(1)????视图的基本概念
(2)????创建与更新视图的SQL语句
3、实验内容及步骤
(1)????利用SQL语句创建如下视图:
a)????????视图v_course,包含学分大于3的课程的编号,课程名称,课程学分,课程学时,学期,并将对应视图的列名分别改为no,name,credit,hour,term
CREATE VIEW v_course AS
SELECT cno AS no, cname AS name, credit, hour, term
FROM course
WHERE credit > 3;
b)????????视图v_select中的数据为每个学生的学号、姓名、班级编号、院系、选修课程号,课程名及期末成绩
CREATE VIEW v_select AS
SELECT s.sno, s.sname, s.clno, c.department, sc.cno, co.cname, sc.score
FROM student s
JOIN score sc ON s.sno = sc.sno
JOIN course co ON sc.cno = co.cno
JOIN class c ON s.clno = c.clno;
c)????????视图v_credit,包含每个班级的编号和该班级学分最大值;
CREATE VIEW v_credit AS
SELECT clno, MAX(credit) AS max_credit
FROM class
JOIN course_class ON class.clno = course_class.clno
JOIN course ON course_class.cno = course.cno
GROUP BY clno;
(2)????利用上面创建的视图完成下列题目:
a)????????查询选修了“数据库原理”课程的学生学号,姓名和成绩
SELECT v_select.sno, v_select.sname, v_select.score
FROM v_select
JOIN course co ON v_select.cno = co.cno
WHERE co.cname = '数据库原理';
b)????????查询班级学分最高的学生学号、姓名、班级号和学分
SELECT v_select.sno, v_select.sname, v_select.clno, c.max_credit
FROM v_select
JOIN v_credit c ON v_select.clno = c.clno
WHERE c.max_credit = (
SELECT MAX(max_credit)
FROM v_credit
);
c)????????将下列课程信息插入视图v_ course中
课程编号 | 课程名 | 学分 | 学时 | 学期 |
308006 | JSP | 3 | 64 | 5 |
该课程信息是否能添加到视图中,如果能添加,则添加后通过视图是否能查询到该课程信息。
INSERT INTO v_course (no, name, credit, hour, term)
VALUES ('308006', 'JSP', 3, 64, 5);
(3)????利用SQL语句在teacher表的tname列上创建唯一索引UQ_tname。用insert语句向teacher表中如下教师信息,并观察语句执行结果:
教师编号 | 教师姓名 | 密码 | 性别 | 电话 | 院系 | 身份 | 说明 |
0301 | 刘元朝 | 0301 | 男 | Null | 机械学院 | 1 | Null |
CREATE UNIQUE INDEX UQ_tname ON teacher(tname);
INSERT INTO teacher (tno, tname, pwd, sex, tel, department, type, remark)
VALUES ('0301', '刘元朝', '0301', '男', NULL, '机械学院', 1, NULL);
?
文章来源:https://blog.csdn.net/Hubery_sky/article/details/135010823
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!