数据库系统SQL图示

SQL数据库系统课后练习(二)

数据库系统核心知识点练习题集,包含SQL查询、关系代数、范式分解和E-R图设计等实践内容

March 15, 2025 · 0 分钟 · 0 字 · lanshi
数据库系统概念图示

SQL数据库系统课后练习(一)

ER图相关习题 关系代数运算相关习题 例题:现有关系S(S##,SNAME,AGE,SEX)),C(C##,CNAME,TEACHER)和SC(S##,C##,GRADE),试用表达式表示以下查询语句: 第一个问题:查询至少选修"程军"老师所授全部课程的学生姓名(SNAME); 解析:有三个部分,要查询"程军"老师的全部课程;要查询学生的选课记录,包括学号和课程号;要查询学生的姓名. 至少表示要查询选修了全部课程的学生,即选修了"程军"老师的全部课程的学生. 所以,首先要找到"程军"老师的全部课程,然后找到选修了这些课程的学生,最后找到这些学生的姓名. 这个查询可以分为三个部分: 1.找到"程军"老师的全部课程:\ $$\pi_{(C\##(\sigma_(TEACHER='\text{程军}')(C)))}$$ 2.学生选课记录:\ $$\pi_{S\## C\##(SC)}$$ 3.筛选学生: $${\pi_{S\##,C\##(SC)}}\div{\pi_{(C\##(\sigma_(TEACHER='\text{程军}')(C)}}$$ 综合以上三个部分,可以得到整个查询的表达式:\ $$\pi_{\text{SNAME}} \Big( S \Join \big( \pi_{\text{S\##, C\##}}(SC) \div \pi_{\text{C\##}}( \sigma_{\text{TEACHER='程军'}}(C) ) \big) \Big)$$ SQL语句 题1 1. 设学生课程数据库中有三个关系: 学生关系 S (S##, SNAME, AGE, SEX) 学习关系 SC (S##, C##, GRADE) 课程关系 C (C##, CNAME) 其中 S##, C##, SNAME, AGE, SEX, GRADE, CNAME 分别表示学号、课程号、姓名、年龄、性别、成绩和课程名。 用 SQL 语句表达以下操作: 1. 检索选修课程名称为 "MATHS" 的学生学号与姓名。 答: SELECT DISTINCT S.S##, S.SNAME FROM S JOIN SC ON S.S## = SC.S## JOIN C ON SC.C## = C.C## WHERE C.CNAME = 'MATHS'; 2. 检索至少学习了课程号为 "C1" 和 "C2" 的学生的学号。 ...

March 9, 2025 · 3 分钟 · 503 字 · lanshi
访问量 0
访客数 0
文章数 12
总字数 4321words
运行时间 0days 00:00:00