按要求完成视图设计与创建实验任务在 student 数据库中,以student 、course 和 sc 表为基础完成下列视图的设计与创建.表结构如下: student(sno,sname,sdept,sex,sage)sc(sno,cno,grade) cource(cno,cname,credit,th)(1)创建学生的基本情况视图 V STUO (2)创建视图 V Sco,显示学生成绩信息。 (3)创建视图 V SCORE, 要求只显示学生的学号、姓名、系别、课号、课程名称及成绩各系学生人数、平均年龄创建视图 V NUM AVG。
时间: 2024-03-11 08:48:41 浏览: 112
根据你的要求,以下是视图的设计与创建:
1. 创建学生的基本情况视图 V_STUO:
```sql
CREATE VIEW V_STUO AS
SELECT sno, sname, sdept, sex, sage
FROM student;
```
2. 创建显示学生成绩信息的视图 V_Sco:
```sql
CREATE VIEW V_Sco AS
SELECT sno, cno, grade
FROM sc;
```
3. 创建只显示学生的学号、姓名、系别、课号、课程名称及成绩的视图 V_SCORE,并且包括各系学生人数、平均年龄的视图 V_NUM_AVG:
```sql
CREATE VIEW V_SCORE AS
SELECT s.sno, s.sname, s.sdept, sc.cno, c.cname, sc.grade
FROM student s, sc, course c
WHERE s.sno = sc.sno AND sc.cno = c.cno;
CREATE VIEW V_NUM_AVG AS
SELECT s.sdept, COUNT(*) AS num, AVG(s.sage) AS avg_age
FROM student s
GROUP BY s.sdept;
```
相关问题
1、创建视图 以数据库user_db及数据表student、teacher、class、course、sc为基础(数据表及相关表数据来源于实验三),执行视图的创建、查询、更新和删除,请将实现下列功能的 SQL 语句通过课堂派的“作业”功能提交; (1)在当前数据库user_db中创建信息技术学院学生的视图xx_xs,包括学号、姓名和学院名; (2)在当前数据库user_db中创建信息技术学院学生的视图xx_cj,包括学号、姓名和成绩; (3)当前数据库是xscj,在数据库user_db上创建信息技术学院学生的视图xx_cj1,包括学号、姓名和成绩; (4)创建数据库user_db上的信息技术学院学生平均成绩视图xx_avg,包括学号和平均成绩。
对于问题1,以下是实现功能的SQL语句:
(1)在当前数据库user_db中创建信息技术学院学生的视图xx_xs,包括学号、姓名和学院名:
```
CREATE VIEW xx_xs AS
SELECT s.sid, s.sname, c.cname
FROM student s, class c
WHERE s.cid = c.cid AND c.cname = '信息技术学院';
```
(2)在当前数据库user_db中创建信息技术学院学生的视图xx_cj,包括学号、姓名和成绩:
```
CREATE VIEW xx_cj AS
SELECT s.sid, s.sname, sc.score
FROM student s, sc
WHERE s.sid = sc.sid AND s.cid IN (SELECT cid FROM class WHERE cname = '信息技术学院');
```
(3)当前数据库是xscj,在数据库user_db上创建信息技术学院学生的视图xx_cj1,包括学号、姓名和成绩:
```
USE xscj;
CREATE VIEW xx_cj1 AS
SELECT s.sid, s.sname, sc.score
FROM student s, sc
WHERE s.sid = sc.sid AND s.cid IN (SELECT cid FROM class WHERE cname = '信息技术学院');
USE user_db;
```
(4)创建数据库user_db上的信息技术学院学生平均成绩视图xx_avg,包括学号和平均成绩:
```
CREATE VIEW xx_avg AS
SELECT s.sid, AVG(sc.score) AS avg_score
FROM student s, sc
WHERE s.sid = sc.sid AND s.cid IN (SELECT cid FROM class WHERE cname = '信息技术学院')
GROUP BY s.sid;
```
创建一个名为sc_view3的视图,由数据库gradem的student、course、sc表创建一个显示学号为“20050301”的学生选修课程(包括学生姓名、课程名称、成绩等信息)的视图。
可以按照以下 SQL 语句来创建名为 `sc_view3` 的视图:
```
CREATE VIEW sc_view3 AS
SELECT s.name AS student_name, c.name AS course_name, sc.score
FROM student s, course c, sc
WHERE s.sno = sc.sno AND c.cno = sc.cno AND s.sno = '20050301';
```
这个视图将会显示学号为 `20050301` 的学生选修的课程信息,包括学生姓名、课程名称和成绩。你可以根据需要进行调整和修改。注意,这个视图是基于数据库 `gradem` 中的 `student`、`course` 和 `sc` 表创建的。
阅读全文