学生宿舍管理系统MySQL创建视图
时间: 2023-12-16 18:04:47 浏览: 135
MySQL创建视图的语法如下:
```sql
CREATE VIEW view_name AS
SELECT column1, column2.....
FROM table_name
WHERE [condition];
```
其中,view_name是视图的名称,column1、column2是视图中包含的列,table_name是视图所基于的表,condition是筛选条件。
对于学生宿舍管理系统,可以创建一个视图来显示每个宿舍的学生信息。假设有两个表,一个是学生信息表,一个是宿舍信息表,它们的结构如下:
学生信息表(student_info):
- 学生学号(sid)
- 学生姓名(sname)
- 学生性别(sex)
- 学生年龄(age)
- 学生班级(class)
- 学生宿舍楼id(dorm_building_id)
- 学生宿舍id(dorm_id)
- 学生学院信息(college)
- 学生户籍(hometown)
- 学生身份证号(id_card)
- 学生手机号(phone)
- 学生邮箱(email)
- 学生专业信息(major)
宿舍信息表(dorm_info):
- 宿舍号(dorm_number)
- 宿舍类型(dorm_type)
- 宿舍容量(dorm_capacity)
现在需要创建一个视图,显示每个宿舍的学生信息,包括宿舍id、宿舍楼id、宿舍号、宿舍类型、宿舍容量以及该宿舍内的所有学生信息。
创建视图的SQL语句如下:
```sql
CREATE VIEW dorm_student_info AS
SELECT dorm_info.dorm_id, dorm_info.dorm_building_id, dorm_info.dorm_number, dorm_info.dorm_type, dorm_info.dorm_capacity, student_info.sid, student_info.sname, student_info.sex, student_info.age, student_info.class, student_info.college, student_info.hometown, student_info.id_card, student_info.phone, student_info.email, student_info.major
FROM dorm_info
LEFT JOIN student_info ON dorm_info.dorm_id = student_info.dorm_id AND dorm_info.dorm_building_id = student_info.dorm_building_id;
```
这个视图将宿舍信息表和学生信息表进行了左连接,以保证即使某个宿舍没有学生,也能够显示宿舍信息。
阅读全文