R10-10 创建视图图统计没有选课的学生信息 分数 5 现有一个学生数据库,内包含学生表(Student)、课程表(Course)和选修表(SC)。 每学期的某段时间,学校教务处将下达学生学籍清理的任务。假设学籍清理的一类对象是没有选课的学生,请设计一个视图V_StudentsWithoutCourse,用于统计没有选课记录的学生信息。 提示:请使用CREATE VIEW语句作答,并请注意数据表名大小写。 表结构: 学生表(Student)、课程表(Course)和选修表(SC)结构如下:
时间: 2023-06-19 10:06:01 浏览: 341
可以使用以下 SQL 语句创建名为 V_StudentsWithoutCourse 的视图,统计没有选课的学生信息:
```
CREATE VIEW V_StudentsWithoutCourse AS
SELECT Student.*
FROM Student
WHERE Student.Sno NOT IN
(SELECT SC.Sno FROM SC);
```
解释:
该视图的 SELECT 语句使用了子查询,内部查询选修表 SC 中的学生编号,然后外部查询学生表 Student,筛选出学生表中学号不在子查询结果中的记录,即为没有选课的学生信息。
注意,上述 SQL 语句中的表名大小写应与实际表名匹配。
相关问题
R10-9 查询没有选修'C语言'课程的学生
可以使用以下 SQL 语句来查询没有选修'C语言'课程的学生:
```
SELECT student_id, student_name
FROM student
WHERE student_id NOT IN (
SELECT student_id
FROM course_selection
WHERE course_id = 'C语言'
)
```
该语句首先使用子查询获取选修了'C语言'课程的学生ID,然后在学生表中查询不在该子查询结果中的学生ID和学生姓名。
R10-3 A4-1查找订单表中每位顾客的平均运费
可以使用以下 SQL 查询语句来查找订单表中每位顾客的平均运费:
```
SELECT customer_id, AVG(freight)
FROM orders
GROUP BY customer_id;
```
这条 SQL 语句将订单表按照顾客 ID 进行分组,并计算每个组的平均运费。最后返回每个顾客的 ID 和他们的平均运费。
需要注意的是,这里假设订单表的名称为"orders",并且其中包含以下字段:customer_id(顾客 ID)和 freight(运费)。如果实际情况与此不同,需要相应地修改 SQL 语句。