任务七 视图
7.1视图概述
视图是从一个或多个表中导出来的表,它是一种虚拟存在的表,并且表的结构和数据都依赖于基本表。
视图具有以下优点:
(1)、简化查询语句
(2)、安全性
(3)、逻辑数据独立性
7.2.1 创建视图的语法格式
在MySQL中,创建视图需要使用CREATE VIEW语句,其基本语法格式如下所示:
CREATE [OR REPLACE] [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}] VIEW 视图名 [(列名列表)]
AS
SELECT 字段列表
[WITH [CASCADED | LOCAL] CHECK OPTION];
7.1视图概述
视图是从一个或多个表中导出来的表,它是一种虚拟存在的表,并且表的结构和数据都依赖于基本表。
视图具有以下优点:
(1)、简化查询语句
(2)、安全性
(3)、逻辑数据独立性
7.2.1 创建视图的语法格式
在MySQL中,创建视图需要使用CREATE VIEW语句,其基本语法格式如下所示:
CREATE [OR REPLACE] [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}] VIEW 视图名 [(列名列表)]
AS
SELECT 字段列表
[WITH [CASCADED | LOCAL] CHECK OPTION];
语法:
![](https://img2018.cnblogs.com/i-beta/1832434/202001/1832434-20200102231951003-1014445909.png)
注:创建视图时要求具有针对视图的CREATE VIEW权限,以及针对由SELECT语句选择的每一列上的某些权限。对于在SELECT语句中其他地方使用的列,必须具有SELECT权限。如果还有OR REPLACE子句,必须在视图上具有DROP权限。
注:视图属于数据库,在默认情况下,将在当前数据库创建新视图,要想在给定数据库中明确创建视图,创建时应将名称指定为db_name.view_name。
7.2.2 在单表上创建视图
注:视图属于数据库,在默认情况下,将在当前数据库创建新视图,要想在给定数据库中明确创建视图,创建时应将名称指定为db_name.view_name。
7.2.2 在单表上创建视图
例如:CREATE VIEW view_stu AS SELECT math,chinese,math+chinese FROM student;
上述SQL语句执行成功后,会生成一个view_stu视图,接下来使用SELECT语句查看view_stu视图,查询结果如下所示:
![](https://img2018.cnblogs.com/i-beta/1832434/202001/1832434-20200102232113578-1735704798.png)
7.2.3 在多表上创建视图
在MySQL中除了可以在单表上创建视图,还可以在两个或者两个以上的基本表上创建视图。
在MySQL中除了可以在单表上创建视图,还可以在两个或者两个以上的基本表上创建视图。
创建stu_glass视图,SQL语句如下所示:
CREATE VIEW stu_glass(id,NAME,glass)
AS
SELECT student.s_id ,student.name,stu_info.glass
FROM student,stu_info
WHERE student.s_id=stu_info.s_id;
AS
SELECT student.s_id ,student.name,stu_info.glass
FROM student,stu_info
WHERE student.s_id=stu_info.s_id;
上述SQL语句执行成功后,使用SELECT语句查看stu_glass视图,查询结果如下所示:
![](https://img2018.cnblogs.com/i-beta/1832434/202001/1832434-20200102232420530-511732414.png)