使用MySQL创建三表视图简化数据管理(mysql三表创建视图)
使用MySQL创建三表视图简化数据管理
在日常开发中,经常需要对不同表中的数据进行联合查询和统计处理,这时候就需要使用到视图来简化数据的管理和操作。MySQL数据库作为目前使用广泛的一种关系型数据库,其视图的使用也十分便捷。本文将介绍如何使用MySQL创建三表视图简化数据管理。
第一步:创建需要的表
在本例中,我们将创建三个表,分别为“学生信息表”、“教师信息表”和“选课信息表”。学生信息表包括学生的姓名、性别、年龄、联系方式等基本信息,教师信息表包括教师的姓名、性别、职称等信息,选课信息表包括学生和教师的姓名、所选课程名称和成绩。具体建表语句如下:
–创建学生信息表
CREATE TABLE `student` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(20) NOT NULL,
`gender` char(1) NOT NULL,
`age` int(11) NOT NULL,
`phone` varchar(20) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4;
–创建教师信息表
CREATE TABLE `teacher` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(20) NOT NULL,
`gender` char(1) NOT NULL,
`title` varchar(20) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4;
–创建选课信息表
CREATE TABLE `score` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`student_name` varchar(20) NOT NULL,
`teacher_name` varchar(20) NOT NULL,
`course_name` varchar(20) NOT NULL,
`score` varchar(10) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4;
第二步:向三个表中插入数据
在创建好表的基础上,我们需要向表中插入一些数据,以便于后续的视图操作。具体插入数据的语句如下:
–向学生信息表中插入数据
INSERT INTO `student`(`name`, `gender`, `age`, `phone`) VALUES (‘张三’, ‘男’, 20, ‘135****5678’);
INSERT INTO `student`(`name`, `gender`, `age`, `phone`) VALUES (‘李四’, ‘女’, 21, ‘136****7890’);
INSERT INTO `student`(`name`, `gender`, `age`, `phone`) VALUES (‘王五’, ‘男’, 22, ‘137****8901’);
–向教师信息表中插入数据
INSERT INTO `teacher`(`name`, `gender`, `title`) VALUES (‘张老师’, ‘女’, ‘讲师’);
INSERT INTO `teacher`(`name`, `gender`, `title`) VALUES (‘李老师’, ‘男’, ‘副教授’);
INSERT INTO `teacher`(`name`, `gender`, `title`) VALUES (‘王老师’, ‘男’, ‘教授’);
–向选课信息表中插入数据
INSERT INTO `score`(`student_name`, `teacher_name`, `course_name`, `score`) VALUES (‘张三’, ‘张老师’, ‘数学’, ’90’);
INSERT INTO `score`(`student_name`, `teacher_name`, `course_name`, `score`) VALUES (‘李四’, ‘张老师’, ‘语文’, ’80’);
INSERT INTO `score`(`student_name`, `teacher_name`, `course_name`, `score`) VALUES (‘王五’, ‘李老师’, ‘英语’, ’88’);
第三步:创建三表联合查询视图
在完成了数据表的建立和数据的插入之后,我们就可以开始创建三表联合查询视图。具体操作的语句如下:
CREATE VIEW `student_score_info` AS
SELECT `student`.`name`, `student`.`gender`, `student`.`age`, `student`.`phone`, `teacher`.`title`, `score`.`course_name`, `score`.`score`
FROM `student`, `teacher`, `score`
WHERE `student`.`name`=`score`.`student_name` AND `teacher`.`name`=`score`.`teacher_name`;
通过以上的语句,我们就可以成功创建一个名为“student_score_info”的视图,将三个表中的数据联合起来,方便进行查询和统计。
第四步:查询视图中的数据
我们可以通过以下的语句对创建的视图进行查询:
SELECT * FROM `student_score_info`;
查询结果如下所示:
| name | gender | age | phone | title | course_name | score |
| —- | —— | — | —– | —– | ———– | —– |
| 张三 | 男 | 20 | 135****5678 | 讲师 | 数学 | 90 |
| 李四 | 女 | 21 | 136****7890 | 讲师 | 语文 | 80 |
| 王五 | 男 | 22 | 137****8901 | 副教授 | 英语 | 88 |
通过以上的示例,我们可以看到如何使用MySQL创建三表视图,将不同数据表中的数据联合起来,方便对数据进行操作和管理。