请参照教材的学生-课程数据库完成以下查询,请用关系代数语言描述: 1、查询选修数据库课程(DB)的学生名单; 2、查询信息系(IS)专业学生的女生名单; 3、查询未选修课程的学生名单;
时间: 2023-06-20 18:05:45 浏览: 144
1. 查询选修数据库课程(DB)的学生名单:
$$
\pi_{S\_name}(\sigma_{C\_name='DB'}(Student \Join SC \Join Course))
$$
2. 查询信息系(IS)专业学生的女生名单:
$$
\pi_{S\_name}(\sigma_{S\_major='IS' \land S\_gender='F'}(Student))
$$
3. 查询未选修课程的学生名单:
$$
\pi_{S\_name}((Student)\,-\,(\pi_{S\_name}(SC \Join Student)))
$$
相关问题
写出下列操作的SQL语句 S(学号SNO,姓名SNAME,年龄SAGE,性别SSEX) SC(学号SNO,课程号CNO,成绩GRADE) C(课程号CNO,课程名CNAME,任课教师TEACHER) 试用关系代数表达式表示下列查询语句。 (1)检索张三老师所授课程的课程号、课程名。(3分) (2)检索学号为003学生所学课程的课程名与任课教师名。(3分) (3)检索至少选修刘平所授课程中一门课程的女学生的姓名。(3分) (4)检索“王”同学不学的课程号。(3分) (5)检索全部学生都选修的课程的课程号与课程名。(4分)
(1) SQL语句:
```sql
SELECT CNO, CNAME FROM C WHERE TEACHER = '张三';
```
关系代数表达式:
$$\pi_{CNO, CNAME}(\sigma_{TEACHER='张三'}(C))$$
(2) SQL语句:
```sql
SELECT C.CNAME, C.TEACHER
FROM C, SC
WHERE C.CNO = SC.CNO AND SC.SNO = '003';
```
关系代数表达式:
$$\pi_{CNAME, TEACHER}(\sigma_{SNO='003'}(SC \Join C))$$
(3) SQL语句:
```sql
SELECT DISTINCT S.SNAME
FROM S, SC
WHERE S.SNO = SC.SNO AND SC.CNO IN (
SELECT CNO
FROM C
WHERE TEACHER = '刘平'
) AND S.SSEX = '女';
```
关系代数表达式:
$$\pi_{SNAME}(\sigma_{SSEX='女'}(S \Join SC \Join (\pi_{CNO}(C \Join \sigma_{TEACHER='刘平'}(C)))))$$
(4) SQL语句:
```sql
SELECT DISTINCT CNO
FROM SC
WHERE SNO = '王' AND CNO NOT IN (
SELECT CNO
FROM SC
WHERE SNO = '王'
);
```
关系代数表达式:
$$\pi_{CNO}(\sigma_{SNO='王'}(SC)) - \pi_{CNO}(\sigma_{SNO='王'}(SC) \Join SC)$$
(5) SQL语句:
```sql
SELECT C.CNO, C.CNAME
FROM C
WHERE NOT EXISTS (
SELECT *
FROM S
WHERE NOT EXISTS (
SELECT *
FROM SC
WHERE SC.SNO = S.SNO AND SC.CNO = C.CNO
)
);
```
关系代数表达式:
$$\pi_{CNO,CNAME}(C) - \pi_{CNO,CNAME}(\sigma_{\exists_{S} \forall_{SC}(SC.SNO=S.SNO \land SC.CNO=C.CNO)}(C \Join SC \Join S))$$
现有学生课程数据库: S(Sno,S name, S sex, Sage, S dept) , 对应如下:学生(学号,姓名,性别,年龄,所在系) C(C no,Cname,Cp no, Credit) , 对应如下:课程(课号,课程名,先修课,学分) SC(Sno, C no,Grade) , 对应如下: 选课(学号,课号,成绩) 请用关系代数表达式描述如下查询要求: 1.查询选修课程名为“数学”的学生号和学生姓名;2.查询至少选修了课程号为“01”和“03”的学生号;3.查询选修了“操作系统”或“数据库
1. π Sno, S name (σ Cname = "数学"(SC ⋈ C))
2. π Sno ((σ Cno = "01"(SC)) ⋂ (σ Cno = "03"(SC)))
3. π Sno ((σ Cname = "操作系统"(SC ⋈ C)) ∪ (σ Cname = "数据库"(SC ⋈ C)))
阅读全文