MySql数据库之视图(定义视图查询视图更新视图视图的作用)
Posted 地球太危险了
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySql数据库之视图(定义视图查询视图更新视图视图的作用)相关的知识,希望对你有一定的参考价值。
目录
一、定义视图
1、建立视图
语法:CREATE VIEW 视图名 【列名】... AS 子查询 【WITH CHECK OPTION】
WITH CHECK OPTION:加上这个语句后即对视图的修改需要符合定义视图时子查询中的条件表达式。
例1:单个表上的视图
CREATE VIEW IS_Student AS SELECT Sno, Sname, Sage FROM Student WHERE Sdept='IS';
解释:建立信息系学生的视图。
例2:多个表上的视图
CREATE VIEW IS_S1(Sno, Sname, Grade) AS SELECT Student.Sno, Sname, Grade FROM Student, SC WHERE Sdept='IS' AND Student.Sno=SC.Sno AND SC.Cno='1';
解释:建立信息系选修了1号课程的学生的视图。
例3:在视图上建立视图
CREATE VIEW IS_S2 AS SELECT Sno, Sname, Grade FROM IS_S1 WHERE Grade>=90;
解释:建立信息系选修1号课程且成绩在90分以上的学生视图。
例4:带虚拟列的视图(带表达式的视图)
CREATE VIEW BT_S(Sno, Sname, Sbirth) AS SELECT Sno, Sname, 2014-Sage FROM Student;
解释:反映学生出生年份的视图。
例5:分组视图
CREATE VIEW S_G(Sno, Gavg) AS SELECT Sno, AVG(Grade) FROM SC GROUP BY Sno;
解释:将学生的学号及平均成绩定义为一个视图。
2、删除视图
语法:DROP VIEW 视图名;
例:DROP VIEW S_G;
二、查询视图
视图定义后就可以向对基本表一样对视图进行查询了。
例1:SELECT Sno, Sage FROM IS_Student WHERE Sage<20;
解释:使用刚刚定义的视图IS_Student进行查询年龄小于20岁的学生。
例2:SELECT * FROM IS_S1;
解释:查询刚刚定义的视图IS_S1。
三、更新视图
由于视图是不实际存在的虚表,因此对视图的更新最终要转换为对基本表的更新。
例:UPDATE IS_Student SET Sname='lili' WHERE Sno='201215125';
解释:将信息系学生视图IS_Student中学号为“201215125”的学生姓名改为“lili”。
四、视图的作用
1) 视图能够简化用户的操作
2) 视图使用户能以多种角度看待同一数据
3) 视图对重构数据库提供了一定程度上的逻辑独立性
4) 视图能够对机密数据提供安全保护
5) 适当利用视图可以更清晰地表达查询
注:有关mysql数据库的更多其他操作请参见MySql目录进行查找。(建议收藏)
以上是关于MySql数据库之视图(定义视图查询视图更新视图视图的作用)的主要内容,如果未能解决你的问题,请参考以下文章