用idea和MySQL写实验题目:关联关系查询 实验目的:掌握一对多、多对一多表连接查询和多表单独查询用法,掌握多对多的多表连接查询用法 实验任务:自己设计一种场景,实现1:n、n:1、m:n关联关系查询。 代码和步骤详细地发过来
时间: 2024-09-30 14:05:26 浏览: 33
实验题目:利用IntelliJ IDEA 和 MySQL 实现数据关联查询实战
**实验背景**:
假设你正在管理一家学校的信息系统,它包含以下几个数据库表:
1. **学生信息表(Students)** - 学生ID (student_id),姓名(name),班级(class_id)
2. **班级信息表(Classes)** - 班级ID (class_id),班级名称(class_name)
3. **课程信息表(Courses)** - 课程ID (course_id),课程名称(course_name)
4. **选课信息表(Enrollments)** - 学生ID (student_id),课程ID (course_id)
**实验目标**:
1. 描述一对一关联:如查找某个学生的所有课程
2. 描述一对多关联:如列出某班级的所有学生及其选修课程
3. 描述多对多关联:如找出所有参加了指定课程的学生
**实验步骤及代码示例**:
### 1. 一对一关联(查询学生课程)
```sql
-- 使用IDEA执行SQL
String sql = "SELECT s.student_id, s.name, c.course_name FROM Students s JOIN Enrollments e ON s.student_id = e.student_id JOIN Courses c ON e.course_id = c.course_id WHERE s.student_id = ?"; // 替换为你想要查询的学生ID
```
### 2. 一对多关联(查询班级学生及其课程)
```sql
sql = "SELECT c.class_id, c.class_name, s.name FROM Classes c LEFT JOIN Students s ON c.class_id = s.class_id";
```
### 3. 多对多关联(查询参加特定课程的学生)
```sql
sql = "SELECT distinct s.student_id, s.name FROM Students s JOIN Enrollments e ON s.student_id = e.student_id JOIN Courses c ON e.course_id = c.course_id WHERE c.course_name = ?"; // 替换为你想查询的课程名
```
**
阅读全文