实验内容】 3.1 查询选修了严敏老师的数学分析课程的学生的姓名、课程名、教师名和成线。(1)等值连接查询。 (2)自然连接查询。(3)自身连接查询 代码
时间: 2024-10-13 21:10:27 浏览: 88
实验内容主要包括通过SQL语言的不同连接操作来获取学生信息。这里列举了三种常见的连接查询:
1. **等值连接查询** (Equijoin):
例如,假设我们有两个表:`Students` 和 `Courses`, 分别记录学生的基本信息和选课情况,其中包含字段如 `StudentName`, `CourseName`, `TeacherName` 和 `StudentID`。查询语句可能是这样的:
```sql
SELECT Students.StudentName, Courses.CourseName, Teachers.TeacherName
FROM Students
INNER JOIN Courses ON Students.StudentID = Courses.StudentID
WHERE Courses.TeacherName = '严敏'
AND Courses.CourseName = '数学分析';
```
2. **自然连接查询** (Natural Join):
自然连接会基于两个表共有的列并去除重复项。在这种情况下,也需要TeacherName匹配,所以查询类似:
```sql
SELECT Students.StudentName, Courses.CourseName, Teachers.TeacherName
FROM Students
NATURAL JOIN Courses ON Courses.TeacherName = '严敏'
WHERE Courses.CourseName = '数学分析';
```
注意,如果`Students`表和`Courses`表中都有 TeacherName 字段,那么这个字段会被自动匹配。
3. **自身连接查询** (Self Join):
如果`Courses`表还包含了另一个关联学生的字段(比如`InstructorID`),可以用来做自身连接查询查找教师的信息。例如:
```sql
SELECT c1.StudentName AS StudentName, c1.CourseName, t.TeacherName
FROM Courses c1
INNER JOIN Courses c2 ON c1.InstructorID = c2.StudentID
INNER JOIN Teachers t ON c2.TeacherName = '严敏'
WHERE c1.CourseName = '数学分析';
```
这里假设`c1`是学生选课表,而`c2`用于连接到教师表`Teachers`。
阅读全文