MySQL(零基础)详解之视图

目录

一、什么是视图

二、视图的优点

三、视图缺点

四、视图的操作

4.1、创建视图

4.2、使用视图

4.3、查看视图

4.4、更新视图 

4.5、删除视图


一、什么是视图

在数据库中,视图是根据执行的 SQL 语句的结果所形成的一张虚拟表。
视图中包含行和列,以及真实的数据,它和物理表没有什么实质性的差别。我们操作视图也就相当于操作真实表。
在视图中,也是可以使用所有的 DQL 语句。
视图和物理表的在使用方式上完全相同,但是视图是不占用物理空间,它是一张逻辑表。

二、视图的优点

(1)视图可以上用户或程序员只能看到他们所需要的数据,而不需要把表中所有的信息都暴露出 来。这样就可以增强数据的安全性。

(2)我们可以把经常需要做多表查询的这些数据定义到视图中,这样做就简化了SQL查询语句的编写。

(3)视图只限于数据的查询

三、视图缺点

(1)操作视图会比操作物理表慢,所以尽量避免对大型数据表创建视图。

(2)尽量不要创建嵌套视图,因为它比较耗性能。

(3)尽量在视图中只返回所需要的信息,不要在视图中使用不需要的访问表。

四、视图的操作

4.1、创建视图

语法格式:

create [or replace] [algorithm = {uniqued|merge|temptable}] 
view 视图名称[(字段列表)] as sql执行语句 
[with [cascaded | local] check option]
说明:
(1)选项 WITH [CASCADED | LOCAL] CHECK OPTION 决定了是否允许更新数据使记录不再满足视图的条件。
(2)LOCAL : 只要满足本视图的条件就可以更新。
(3) CASCADED : 必须满足所有针对该视图的所有视图的条件才可以更新。 默认值。

示例:创建基本工资高于 10000 的员工信息的视图表。

CREATE VIEW t_employee_view AS SELECT e.eid,ename,basic_salary salary 
FROM t_employee e JOIN t_salary s USING(eid) 
WHERE s.basic_salary>10000;

4.2、使用视图

使用视图的方式和使用真实的物理表的方式一样,也是使用 DQL 语句来进行查询。

语法格式:

select 字段列表 
from 视图名称 
[where 条件] [group by 分组字段] 
....
示例:查询视图表 t_employee_view 中所有数据。
select * from t_employee_view;

4.3、查看视图

我们查看表是使用 show tables 命令,但是从 MySQL 5.1 版本开始,使用 show tables 这个命令时不仅会显示表的名字,还会显示视图的名字。
show tables;

4.4、更新视图 

语法格式:

ALTER [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}] 
VIEW view_name [(column_list)] 
AS select_statement 
[WITH [CASCADED | LOCAL] CHECK OPTION]
示例:我们希望向 t_employee_view 视图中添加 gender
alter view t_employee_view as 
SELECT e.eid,ename,gender,basic_salary salary 
FROM t_employee e JOIN t_salary s USING(eid) 
WHERE s.basic_salary>10000;
执行完上面的语句后,就能够成功更新我们原有的视图结构。
再执行查询来验证:
select * from t_employee_view;

4.5、删除视图

删除视图可以使用 drop view 命令来完成。
语法格式:
drop view [if exists] 视图名称;
例如:删除上面创建的视图
drop view t_employee_view;

注意:删除视图不会删除原有数据。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值