对于教学数据库的三个基本表 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 09:52:12 浏览: 983
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 = '男';
```
相关问题
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 = '生物信息学'
)
```
先创建数据库在所创建的数据库中再创建三个字段如下的表: S(SNO,SNAME,SEX,AGE,SDEPT),C(CNO.CNAME,TNAME),SC(SNO.CNO.GRADE),
好的,这个描述涉及到了数据库设计的基本步骤。首先,你需要创建一个数据库,然后在这个数据库中创建三个相关的数据表:
1. **S 表** (学生表):
- SNO: 学生编号 (通常是主键)
- SNAME: 学生姓名
- SEX: 性别
- AGE: 年龄
- SDEPT: 所属部门
2. **C 表** (课程表):
- CNO: 课程编号 (也可能是主键)
- CNAME: 课程名称
- TNAME: 任课教师姓名
3. **SC 表** (选课成绩表, 通常称为评分表):
- SNO: 通过外键关联到学生表的SNO
- CNO: 通过外键关联到课程表的CNO
- GRADE: 成绩
这三个表之间通过 SNO 和 CNO 进行关联,因为一个学生可以选择多门课程,一门课程也可以被多个学生选择。这种关系被称为一对多关系(One-to-Many)。在实际操作中,你可能会使用 SQL 创建语句来实现这些表格,例如在MySQL中:
```sql
CREATE DATABASE your_database_name;
USE your_database_name;
CREATE TABLE S (
SNO INT PRIMARY KEY,
SNAME VARCHAR(50),
SEX CHAR(1),
AGE INT,
SDEPT VARCHAR(50)
);
CREATE TABLE C (
CNO INT PRIMARY KEY,
CNAME VARCHAR(50),
TNAME VARCHAR(50)
);
CREATE TABLE SC (
SNO INT,
CNO INT,
GRADE INT,
FOREIGN KEY (SNO) REFERENCES S(SNO),
FOREIGN KEY (CNO) REFERENCES C(CNO)
);
```
阅读全文