学生宿舍信息管理系统mysql代码实现
时间: 2023-08-01 19:14:49 浏览: 105
以下是学生宿舍信息管理系统的MySQL代码实现,包括创建数据库和表,以及插入、更新和查询数据等操作:
1. 创建数据库和表
```sql
-- 创建数据库
CREATE DATABASE dormitory;
-- 使用数据库
USE dormitory;
-- 创建宿舍表
CREATE TABLE dorm (
id INT(11) NOT NULL AUTO_INCREMENT,
building VARCHAR(10) NOT NULL,
room_no VARCHAR(10) NOT NULL,
bed_count INT(11) NOT NULL,
PRIMARY KEY (id)
);
-- 创建专业表
CREATE TABLE major (
id INT(11) NOT NULL AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
department VARCHAR(50) NOT NULL,
PRIMARY KEY (id)
);
-- 创建学生表
CREATE TABLE student (
id INT(11) NOT NULL AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
gender VARCHAR(10) NOT NULL,
age INT(11) NOT NULL,
major_id INT(11) NOT NULL,
phone VARCHAR(50) NOT NULL,
PRIMARY KEY (id),
FOREIGN KEY (major_id) REFERENCES major(id)
);
-- 创建住宿表
CREATE TABLE accommodation (
id INT(11) NOT NULL AUTO_INCREMENT,
student_id INT(11) NOT NULL,
dorm_id INT(11) NOT NULL,
bed_no INT(11) NOT NULL,
check_in_date DATETIME NOT NULL,
PRIMARY KEY (id),
FOREIGN KEY (student_id) REFERENCES student(id),
FOREIGN KEY (dorm_id) REFERENCES dorm(id)
);
-- 创建卫生表
CREATE TABLE hygiene (
id INT(11) NOT NULL AUTO_INCREMENT,
dorm_id INT(11) NOT NULL,
check_date DATE NOT NULL,
score INT(11) NOT NULL,
problems TEXT NOT NULL,
PRIMARY KEY (id),
FOREIGN KEY (dorm_id) REFERENCES dorm(id)
);
```
2. 插入数据
```sql
-- 插入宿舍数据
INSERT INTO dorm (building, room_no, bed_count) VALUES
('A', '101', 4),
('A', '102', 4),
('B', '201', 6),
('B', '202', 6);
-- 插入专业数据
INSERT INTO major (name, department) VALUES
('计算机科学与技术', '信息科学与工程学院'),
('软件工程', '信息科学与工程学院'),
('物流管理', '商学院'),
('市场营销', '商学院');
-- 插入学生数据
INSERT INTO student (name, gender, age, major_id, phone) VALUES
('张三', '男', 20, 1, '13812345678'),
('李四', '女', 21, 2, '13912345678'),
('王五', '男', 19, 3, '13612345678'),
('赵六', '女', 20, 4, '13712345678');
-- 插入住宿数据
INSERT INTO accommodation (student_id, dorm_id, bed_no, check_in_date) VALUES
(1, 1, 1, '2021-09-01 08:00:00'),
(2, 1, 2, '2021-09-01 08:00:00'),
(3, 3, 1, '2021-09-01 08:00:00'),
(4, 3, 2, '2021-09-01 08:00:00');
-- 插入卫生数据
INSERT INTO hygiene (dorm_id, check_date, score, problems) VALUES
(1, '2021-09-01', 90, '床单未换'),
(3, '2021-09-01', 80, '地面有灰尘');
```
3. 更新数据
```sql
-- 更新宿舍床位数量
UPDATE dorm SET bed_count = 5 WHERE id = 1;
-- 更新学生联系电话
UPDATE student SET phone = '13987654321' WHERE id = 2;
-- 更新住宿信息
UPDATE accommodation SET bed_no = 3 WHERE id = 1;
-- 更新卫生检查得分和问题
UPDATE hygiene SET score = 85, problems = '床单未换,地面有灰尘' WHERE id = 1;
```
4. 查询数据
```sql
-- 查询所有宿舍信息
SELECT * FROM dorm;
-- 查询所有专业信息
SELECT * FROM major;
-- 查询所有学生信息及其所属专业
SELECT student.*, major.name AS major_name FROM student JOIN major ON student.major_id = major.id;
-- 查询所有住宿信息及其所属学生和宿舍
SELECT accommodation.*, student.name AS student_name, dorm.room_no AS dorm_room_no FROM accommodation JOIN student ON accommodation.student_id = student.id JOIN dorm ON accommodation.dorm_id = dorm.id;
-- 查询所有卫生检查信息及其所属宿舍
SELECT hygiene.*, dorm.building AS dorm_building, dorm.room_no AS dorm_room_no FROM hygiene JOIN dorm ON hygiene.dorm_id = dorm.id;
```
以上是学生宿舍信息管理系统的MySQL代码实现,可以根据具体需求进行修改和扩展。
阅读全文