现有关系数据库如下: 学生(学号,姓名,性别,专业,奖学金) 课程(课程号,名称,学分) 学习(学号,课程号,分数) 用关系代数表达式实现下列1~4小题。 (1)检索“英语”专业学生所学课程的信息,包括学号、姓名、课程名和分数。 (2)检索“数据库原理”课程成绩高于90’分的所有学生的学号、姓名、专业和分数; (3)检索不学课程号为C135课程的学生信息,包括学号、姓名和专业; (4)检索没有任何一门课程成绩不及格的所有学生的信息,包括学号、姓名和专业; 用SQL语言实现下列5~8小题。 (5)检索不学课程号为C135课程的学生信息,包括学号、姓名和专业; (6)检索至少学过课程号为C135和C219的学生信息,包括学号、姓名和专业; (7)从学生表中删除成绩出现过O分的所有学生信息; (8)定义“英语”专业学生所学课程的信息视图V-Stu,包括学号、姓名、课程号和分数。
时间: 2023-03-22 22:00:56 浏览: 285
(1) π 学号,姓名,名称,分数 (σ 专业='英语' (学生 ⨝ 学习 ⨝ 课程))
(2) π 学号,姓名,专业,分数 (σ 课程号='数据库原理' and 分数 > 90 (学生 ⨝ 学习))
(3) π 学号,姓名,专业 (学生 - π 学号,姓名,专业 (σ 课程号='C135' 学习))
(4) π 学号,姓名,专业 (学生 ÷ π 学号 (σ 分数<60 学习))
(5) SELECT 学号,姓名,专业 FROM 学生 WHERE 学号 NOT IN (SELECT 学号 FROM 学习 WHERE 课程号='C135')
(6) SELECT 学号,姓名,专业 FROM 学生 WHERE 学号 IN (SELECT 学号 FROM 学习 WHERE 课程号='C135') AND 学号 IN (SELECT 学号 FROM 学习 WHERE 课程号='C219')
(7) DELETE FROM 学生 WHERE 学号 IN (SELECT 学号 FROM 学习 WHERE 分数=0)
(8) CREATE VIEW V_Stu AS SELECT 学号,姓名,课程号,分数 FROM 学生 INNER JOIN 学习 ON 学生.学号=学习.学号 INNER JOIN 课程 ON 学习.课程号=课程.课程号 WHERE 学生.专业='英语'
相关问题
学生(学号,姓名,性别,专业,奖学金) 课程(课程号,名称,学分) 学习(学号,课程号,分数) 用关系代数表达式实现下列1一4小题:
### 回答1:
1. 查询所有学生的学号、姓名和专业信息。
SELECT 学号, 姓名, 专业 FROM 学生;
2. 查询所有课程的课程号、名称和学分信息。
SELECT 课程号, 名称, 学分 FROM 课程;
3. 查询所有学生的学号、课程号和分数信息。
SELECT 学号, 课程号, 分数 FROM 学习;
4. 查询获得奖学金的学生的学号、姓名和奖学金信息。
SELECT 学号, 姓名, 奖学金 FROM 学生 WHERE 奖学金 > 0;
### 回答2:
1. 查询所有学生的学号、姓名和专业。
投影(学号, 姓名, 专业)(学生)
2. 查询所有课程的课程号、名称和学分。
投影(课程号, 名称, 学分)(课程)
3. 查询所有学生的学号、姓名、课程号和分数。
投影(学号, 姓名, 课程号, 分数)(学生 ⨝ 学习)
4. 查询所有选择了某门课程的学生的姓名和分数。
选择(姓名, 分数)(学生 ⨝ 学习 ⨝ (课程号 ='课程号值'))
### 回答3:
1. 查询所有获得奖学金的学生的学号、姓名和专业。
可以使用关系代数的选择操作符将学生关系与奖学金属性连接,并选择获得奖学金的学生,然后再投影操作符选择学号、姓名和专业的属性。
结果可以表示为:π 学号, 姓名, 专业 (学生 ⨝ 奖学金 (学生.学号 = 奖学金.学号))
2. 查询选修了"数学"课程且分数大于等于90分的学生的学号、姓名和分数。
可以先通过条件选择操作符选择课程名称为"数学"的课程,再使用条件选择操作符选择成绩大于等于90分的学生,最后使用投影操作符选择学号、姓名和分数的属性。
结果可以表示为:π 学号, 姓名, 分数 (学生 ⨝ 学习 (学生.学号 = 学习.学号)) ⨝ π 学号, 姓名, 分数 (选课 ⨝ 筛选 (选课.课程名称 = "数学")))
3. 查询选修了"计算机科学"专业的学生的学号、姓名和课程号。
可以使用条件选择操作符选择专业为"计算机科学"的学生,然后再投影操作符选择学号、姓名和课程号的属性。
结果可以表示为:π 学号, 姓名, 课程号 (学生 ⨝ 筛选 (学生.专业 = "计算机科学"))
4. 查询所有学生的学号、课程号和分数,按照分数从高到低排序。
可以直接使用关系代数的投影操作符选择学号、课程号和分数的属性,并使用排序操作符按照分数从高到低排序。
结果可以表示为:π 学号, 课程号, 分数 (学习) ↓分数
找出学习课程名为操作系统的所有学生的学号姓名专业代码性别和专业名称SQL语句
假设学生信息存储在名为Students的表中,专业信息存储在名为Majors的表中,学生和专业之间的关系存储在名为Student_Major的表中,可以使用如下SQL语句查询操作系统课程的所有学生信息:
```
SELECT Students.StudentID, Students.Name, Students.MajorCode, Students.Gender, Majors.MajorName
FROM Students
INNER JOIN Student_Major ON Students.StudentID = Student_Major.StudentID
INNER JOIN Majors ON Student_Major.MajorCode = Majors.MajorCode
WHERE Student_Major.CourseName = '操作系统'
```
其中,INNER JOIN用于连接Students、Student_Major和Majors三张表,ON后面的条件指定了连接条件。WHERE子句用于限定查询结果,只返回选修了操作系统课程的学生信息。