创建大学数据库多表查询
时间: 2023-10-11 12:11:55 浏览: 37
创建大学数据库,需要考虑到多个表之间的关联,以下是一个可能的数据库结构和一些常见的多表查询示例:
1. 学生表(Student)
| 字段名 | 数据类型 |
| --- | --- |
| ID | INT |
| 姓名 | VARCHAR |
| 年龄 | INT |
| 性别 | VARCHAR |
| 专业 ID | INT |
| 入学时间 | DATE |
2. 专业表(Major)
| 字段名 | 数据类型 |
| --- | --- |
| ID | INT |
| 专业名称 | VARCHAR |
3. 教师表(Teacher)
| 字段名 | 数据类型 |
| --- | --- |
| ID | INT |
| 姓名 | VARCHAR |
| 年龄 | INT |
| 性别 | VARCHAR |
| 职称 | VARCHAR |
4. 课程表(Course)
| 字段名 | 数据类型 |
| --- | --- |
| ID | INT |
| 课程名称 | VARCHAR |
| 教师 ID | INT |
| 学分 | INT |
5. 成绩表(Score)
| 字段名 | 数据类型 |
| --- | --- |
| ID | INT |
| 学生 ID | INT |
| 课程 ID | INT |
| 成绩 | INT |
常见的多表查询示例:
1. 查询某个学生的基本信息和所在专业名称:
```sql
SELECT Student.ID, Student.姓名, Student.性别, Student.年龄, Major.专业名称
FROM Student
INNER JOIN Major ON Student.专业ID = Major.ID
WHERE Student.ID = 1;
```
2. 查询某个专业的所有学生的基本信息:
```sql
SELECT Student.ID, Student.姓名, Student.性别, Student.年龄, Major.专业名称
FROM Student
INNER JOIN Major ON Student.专业ID = Major.ID
WHERE Major.ID = 1;
```
3. 查询某个学生的所有课程及其成绩:
```sql
SELECT Course.课程名称, Score.成绩
FROM Course
INNER JOIN Score ON Course.ID = Score.课程ID
WHERE Score.学生ID = 1;
```
4. 查询某个教师的所有课程及其授课学生的基本信息:
```sql
SELECT Course.课程名称, Student.ID, Student.姓名, Student.性别, Student.年龄
FROM Course
INNER JOIN Student ON Course.ID = Score.课程ID
INNER JOIN Score ON Student.ID = Score.学生ID
WHERE Course.教师ID = 1;
```