MySQL 数据库视图 强化练习
前言
本环境是基于 Centos 7.8 系统构建MySQL-5.7.14
具体构建,请参考 MySQL-5.7.14 环境构建
步骤1:创建学生表stu,插入3条记录。
CREATE TABLE stu
(
s_id INT PRIMARY KEY,
s_name VARCHAR(20),
addr VARCHAR(50),
tel VARCHAR(50)
);
INSERT INTO stu
VALUES(1,'XiaoWang','Henan','0371-12345678'),
(2,'XiaoLi','Hebei','13889072345'),
(3,'XiaoTian','Henan','0371-12345670');
步骤2:创建报名表sign,插入3条记录。
CREATE TABLE sign
(
s_id INT PRIMARY KEY,
s_name VARCHAR(20),
s_sch VARCHAR(50),
s_sign_sch VARCHAR(50)
);
INSERT INTO sign
VALUES(1,'XiaoWang','Middle School1','Peking University'),
(2,'XiaoLi','Middle School2','Tsinghua University'),
(3,'XiaoTian','Middle School3','Tsinghua University');
步骤3:创建成绩表stu_mark,插入3条记录。
CREATE TABLE stu_mark (s_id INT PRIMARY KEY ,s_name VARCHAR(20) ,mark int );
INSERT INTO stu_mark VALUES(1,'XiaoWang',80),(2,'XiaoLi',71),(3,'XiaoTian',70);
步骤4:创建考上Peking University的学生的视图
mysql> create view Peking_stu(学生,学校)
-> as select s_name,s_sign_sch from sign
-> where s_sign_sch='Peking University';
步骤5:创建考上Tsinghua University的学生的视图
mysql> create view Tsinghua_stu(学生,学校)
-> as select s_name,s_sign_sch from sign
-> where s_sign_sch='Tsinghua University';
步骤6:XiaoTian的成绩在录入的时候录入错误多录了50分,对其录入成绩进行更正。
创建视图
mysql> create view stu_view_mark
-> as select * from stu_mark;
修改成绩
mysql> update stu_mark
-> set mark=20
-> where s_name='xiaotian';
步骤7:查看更新过后视图和表的情况。
mysql> select * from stu_mark;
+------+----------+------+
| s_id | s_name | mark |
+------+----------+------+
| 1 | XiaoWang | 80 |
| 2 | XiaoLi | 71 |
| 3 | XiaoTian | 20 |
+------+----------+------+
3 rows in set (0.00 sec)
mysql> select * from stu_view_mark;
+------+----------+------+
| s_id | s_name | mark |
+------+----------+------+
| 1 | XiaoWang | 80 |
| 2 | XiaoLi | 71 |
| 3 | XiaoTian | 20 |
+------+----------+------+
3 rows in set (0.00 sec)
步骤8:查看视图的创建信息。
mysql> show create view Peking_stu\G
mysql> show create view Tsinghua_stu\G
mysql> show create view stu_view_mark\G
步骤9:删除创建的视图。
mysql> drop view Peking_stu;
mysql> drop view Tsinghua_stu;
mysql> drop view stu_view_mark;