对于教学数据库的三个基本表 S (SNO, SNAME, AGE, SEX, SDEPT) SC (SNO, CNO, GRADE) C (CNO, CNAME, CDEPT, TNAME) 其中,S代表学生关系,其属性分别为:学号,姓名,年龄,性别,系别。 SC代表学习关系,其属性分别为:学号,课程号,成绩。 C代表课程关系,其属性分别为:课程号,课程名,开课系别,教师 试用SQL的查询语句表达下列查询: 1)检索至少选修DING老师所教课程中一门课程的男学生姓名。 2)检索全部学生都选修的课程的课程号与课程名。 3)检索年龄小于20岁的女学生的学号和姓名。 4)检索至少选修DING老师所教课程中一门课程的男学生姓名。
时间: 2024-03-07 11:52:12 浏览: 637
1)检索至少选修DING老师所教课程中一门课程的男学生姓名。
```
SELECT DISTINCT S.SNAME
FROM S, SC, C
WHERE S.SNO = SC.SNO AND SC.CNO = C.CNO AND C.TNAME = 'DING' AND S.SEX = '男';
```
2)检索全部学生都选修的课程的课程号与课程名。
```
SELECT C.CNO, C.CNAME
FROM C
WHERE NOT EXISTS (
SELECT S.SNO
FROM S
WHERE NOT EXISTS (
SELECT SC.CNO
FROM SC
WHERE S.SNO = SC.SNO AND C.CNO = SC.CNO
)
);
```
3)检索年龄小于20岁的女学生的学号和姓名。
```
SELECT S.SNO, S.SNAME
FROM S
WHERE S.AGE < 20 AND S.SEX = '女';
```
4)检索至少选修DING老师所教课程中一门课程的男学生姓名。
```
SELECT DISTINCT S.SNAME
FROM S, SC, C
WHERE S.SNO = SC.SNO AND SC.CNO = C.CNO AND C.TNAME = 'DING' AND S.SEX = '男';
```