【数据库MySQL】练习---视图

步骤1:创建学生表stu,插入3条记录

#创建stu表
CREATE TABLE stu 
(
s_id INT PRIMARY KEY,
s_name VARCHAR(20),
addr VARCHAR(50),
tel VARCHAR(50)
); 

#stu表中插入数据
INSERT INTO stu
VALUES(1,'XiaoWang','Henan','0371-12345678'),
(2,'XiaoLi','Hebei','13889072345'),
(3,'XiaoTian','Henan','0371-12345670');

 

 步骤2:创建报名表sign,插入3条记录

#创建sign表
CREATE TABLE sign 
(
s_id INT PRIMARY KEY,
s_name VARCHAR(20),
s_sch VARCHAR(50),
s_sign_sch VARCHAR(50)
); 

#表sign中插入数据
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的学生的视图

create view Peki_stu(学号,姓名,成绩,大学) as
select a.s_id,a.s_name,mark,s_sign_sch from sign a  inner join stu_mark b  
on a.s_id=b.s_id 
where s_sign_sch='Peking University';

 

步骤5:创建考上Tsinghua University的学生的视图

create view Tsing_stu(学号,姓名,成绩,大学) as
select a.s_id,a.s_name,mark,s_sign_sch from sign a  inner join stu_mark b  
on a.s_id=b.s_id 
where s_sign_sch='Tsinghua University';

 

步骤6:XiaoTian的成绩在录入的时候录入错误多录了50分,对其录入成绩进行更正

update stu_mark 
set mark=mark-50
where stu_mark.s_name='XiaoTian';

 

步骤7:查看更新过后视图和表的情况

 

步骤8:查看视图的创建信息

#查看北大学生信息
mysql> show create view Peki_stu \G
*************************** 1. row ***************************
                View: Peki_stu
         Create View: CREATE ALGORITHM=UNDEFINED DEFINER=`skip-grants user`@`skip-grants host` SQL SECURITY DEFINER VIEW `Peki_stu` AS select `a`.`s_id` AS `学号`,`a`.`s_name` AS `姓名`,`b`.`mark` AS `成绩`,`a`.`s_sign_sch` AS `大学` from (`sign` `a` join `stu_mark` `b` on((`a`.`s_id` = `b`.`s_id`))) where (`a`.`s_sign_sch` = 'Peking University')
character_set_client: utf8
collation_connection: utf8_general_ci
1 row in set (0.00 sec)

#查看清华学生信息
mysql> show create view Tsing_stu \G
*************************** 1. row ***************************
                View: Tsing_stu
         Create View: CREATE ALGORITHM=UNDEFINED DEFINER=`skip-grants user`@`skip-grants host` SQL SECURITY DEFINER VIEW `Tsing_stu` AS select `a`.`s_id` AS `学号`,`a`.`s_name` AS `姓名`,`b`.`mark` AS `成绩`,`a`.`s_sign_sch` AS `大学` from (`sign` `a` join `stu_mark` `b` on((`a`.`s_id` = `b`.`s_id`))) where (`a`.`s_sign_sch` = 'Tsinghua University')
character_set_client: utf8
collation_connection: utf8_general_ci
1 row in set (0.00 sec)

步骤9:删除创建的视图

  

         完成!!!

猜你喜欢

转载自blog.csdn.net/trichloromethane/article/details/112821210