基于以下三个关系student(sno,sname,ssex,sage,sdept),couse(cno,cname,cpno,credit),sc(sno,cno.grade) 用关系代数表达下列查询。 查询计科系女生的学号与姓名 查询所选课程至少有一门成绩大于70分的学生的学号 查询所选课程成绩全部大于70分的学生的学号 查询既选修了1号课程又选修了3号课程的学生学号 查询选修了1号课程但没有选修3号课程的学生学号 查询选修了1号课程或选修了3号课程的学生学号 查询每门课的直接先修课程号 查询每门课的间接先修课程号 查询选修了数据库这门课的学生的学号与姓名 查询选修了全部课程的学生的学号与姓名
时间: 2023-11-10 10:36:05 浏览: 195
1. σ(sdept='计科' ∧ ssex='女')(student)
2. π(sno) (σ(grade > 70)(sc))
3. π(sno) ((sc ÷ σ(grade <= 70)(sc)) = student)
4. π(sno) ((σ(cno=1)(sc) ⋂ σ(cno=3)(sc)) = sc)
5. π(sno) ((σ(cno=1)(sc) - σ(cno=3)(sc)) = sc)
6. π(sno) ((σ(cno=1)(sc) ⋃ σ(cno=3)(sc)) = sc)
7. π(cpno) (couse)
8. 表达式较为复杂,可以使用递归查询实现,详情可参考 https://www.cnblogs.com/pinard/p/6294228.html
9. π(sno,sname) ((σ(cname='数据库')(couse) ⋂ sc) ⋈ student)
10. π(sno,sname) ((π(sno)(sc) = π(sno)(student)) ÷ π(sno)(couse))
相关问题
STUDENT表有 sno sname ssex sage sdept,couse 有cno cname credit semester,sc有sno cno gradr,请使用SQL语句完成查询选修了生物信息学课程且成绩高于该门课程平均分数的学生的姓名。
SELECT s.sname
FROM student s, sc, couse c
WHERE s.sno = sc.sno
AND sc.cno = c.cno
AND c.cname = '生物信息学'
AND sc.grade > (
SELECT AVG(sc.grade)
FROM sc, couse
WHERE sc.cno = couse.cno
AND couse.cname = '生物信息学'
)
```
① student1 表数据输入 Sno Sname Ssex Sage Sdept 3005 赵达 女 14 SX 3006 杨红 南 21 JSJ
可以使用 SQL 语句向 student1 表中插入数据:
```
INSERT INTO student1(Sno, Sname, Ssex, Sage, Sdept) VALUES
('3005', '赵达', '女', 14, 'SX'),
('3006', '杨红', '男', 21, 'JSJ');
```
执行完上述语句后,student1 表中就会有两条数据。
阅读全文
相关推荐

















