MySql数据库之视图(定义视图、查询视图、更新视图、视图的作用)

目录

一、定义视图

1、建立视图

2、删除视图

二、查询视图

三、更新视图

四、视图的作用


一、定义视图

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目录进行查找。(建议收藏)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值