美文网首页
应用案例——视图的应用

应用案例——视图的应用

作者: 超音速6 | 来源:发表于2020-03-20 18:54 被阅读0次

案例的目的

掌握视图的创建、查询、更新和删除操作。
假如有来自河北和山东的三个理科学生报考北京大学和清华大学,现在需要对其考试的结果进行查询和管理,清华大学的录取分数线为725,北京大学的录取分数线为720。需要创建三个表对学生的信息进行管理,这三个表分别是学生表、报名表和成绩表,其中这三个表的主键(s_is)是统一的。

案例操作过程

1. 创建学生表stu,插入三条记录。
CREATE TABLE stu(
s_id INT(11) PRIMARY KEY,
s_name VARCHAR(20) NOT NULL,
addr VARCHAR(50) NOT NULL,
tel VARCHAR(50) NOT NULL
);

INSERT INTO stu VALUES
(1,'ZhangPeng','Hebei','13889075861'),
(2,'LiXiao','Shandong','13953508223'),
(3,'HuangYun','Shangdong','13905350996');

向表中插入了三条记录,分别是学生的学号、姓名、所在省份和电话号码

2. 创建表明表sign,插入三条数据
CREATE TABLE sign(
s_id INT(11) PRIMARY KEY,
s_name VARCHAR(20) NOT NULL,
s_sch VARCHAR(50) NOT NULL,
s_sign_sch VARCHAR(50) NOT NULL
);

INSERT INTO sign VALUES
(1,'ZhangPeng','High School1','Peking University'),
(2,'LiXiao','High School2','Peking University'),
(3,'HuangYun','High School3','Tsinghua University');

向表中插入了三条记录,分别是学生的学号、姓名、所在学校和报考学校名称。

3. 创建成绩表stu_mark,插入三条记录
CREATE TABLE stu_mark(
s_id INT(11) PRIMARY KEY,
s_name VARCHAR(20) NOT NULL,
mark INT NOT NULL
);

INSERT INTO stu_mark VALUES
(1,'ZhangPeng',730),
(2,'LiXiao',725),
(3,'HuangYun',736);

向表中插入了三条记录,分别是学生的学号、姓名和成绩。

4. 创建考上北京大学(Peking University)的学生视图

视图的名称为beida,视图的内容包含考上北大的学生学号、姓名、成绩和报考学校名称4个字段。

CREATE VIEW beida (id,name,mark,sch) AS SELECT stu_mark.s_id,stu_mark.s_name,stu_mark.mark,sign.s_sign_sch FROM stu_mark,sign WHERE stu_mark.s_id=sign.s_id AND stu_mark.mark>=720 AND sign.s_sign_sch='Peking University';

查看满足条件的学生信息
SELECT * FROM beida;

5. 创建考上清华大学(Tsinghua University)的学生视图

视图的名称为qinghua,视图的内容包含考上清华的学生学号、姓名、成绩和报考学校名称4个字段

CREATE VIEW qinghua (id,name,mark,sch) AS SELECT stu_mark.s_id,stu_mark.s_name,stu_mark.mark,sign.s_sign_sch FROM stu_mark,sign WHERE stu_mark.s_id=sign.s_id AND stu_mark.mark>=725 AND sign.s_sign_sch='Tsinghua University';

查看满足条件的学生信息
SELECT * FROM qinghua;

6. 更新视图qinghua

HuangYun的成绩在录入的时候录入错误,多录了10分,接下来对HuangYun的成绩进行修改,减去多录入的10分。在视图中可以使用UPDATE语句对基本表stu_mark的数据进行更新。

UPDATE stu_mark SET mark=mark-10 WHERE stu_mark.s_name='HuangYun';

查看修改后的stu_mark表的数据
SELECT * FROM stu_mark;

查看视图表中的信息
SELECT * FROM qinghua;

相关文章

网友评论

      本文标题:应用案例——视图的应用

      本文链接:https://www.haomeiwen.com/subject/jrldyhtx.html