视图的概述

1.概念和特点

<1>概念:视图(view)是一种虚拟存在的表,本身并不包含数据。它是作为一个select语法查询到的结果集,以此为基表创建的一张虚拟表。对视图的操作对基表有直接影响,[视图中的数据发送了改变,原始表中的数据也会变化,原始表中的数据发生了变化视图中的数据也会变化]


<2>特点:

  1. 简单:因为视图是查询语句执行后返回的已经过滤好的复合条件的结果集,所以使用视图的用户完全不需要关心后面对应的表的结构、关联条件和筛选条件。
  2. 安全:使用视图的用户只能访问他们被允许查询的结果集,对于表的权限管理并不能限制到某个行或者某个列,但是通过视图就可以简单的实现。
  3. 数据独立:一旦视图的结构被确定了,可以屏蔽表结构变化对用户的影响,源表增加列对视图没有影响;源表修改列名,则可以通过修改视图来解决,不会造成对访问者的影响。

<3>视图的作用/好处

  • 简化SQL语句的数据,因为视图中封装了原始的复杂查询的结果。
  • 视图能够提高我们的查询效率[简化我们的查询操作]。

2.创建/查询视图

初始表:
city表:
在这里插入图片描述

country:
在这里插入图片描述

如果下方的select查询结果集中有相同字段,那么创建视图必须指定名称

	创建视图
	标准语法
		CREATE VIEW 视图名称 [(列名列表)] AS 查询语句;
		-- [(列名列表)]不写默认就是查询语句的结果字段

需求:创建city_country视图,保存城市和国家的信息(使用指定列名)
<1>创建视图
方式一:

CREATE VIEW city_country (city_id,city_name,country_name) AS
SELECT 
      c1.id,
      c1.name,
      c2.name
FROM
      city c1,
      country c2
WHERE  
      c1.cid =c2.id;

方式二:

CREATE VIEW city_country2 AS
SELECT 
      c1.id  city_id,
      c1.name city_name,
      c2.name  country_name
FROM
      city c1,
      country c2
WHERE  
      c1.cid =c2.id;

<2>查询视图

	标准语法
		SELECT * FROM 视图名称;

查询视图

SELECT * FROM city_country2;

结果:
在这里插入图片描述

3.修改视图数据/删除视图

<1>修改视图数据

	标准语法
		UPDATE 视图名称 SET 列名=WHERE 条件;
	
	修改视图结构
	标准语法
		ALTER VIEW 视图名称 (列名列表) AS 查询语句; 

需求1:修改视图数据,将北京修改为深圳。(注意:修改视图数据后,源表中的数据也会随之修改,反之同理)

UPDATE city_country SET city_name = '深圳' WHERE  city_name ='北京';

结果:
city表:
在这里插入图片描述
city_country 视图:
在这里插入图片描述

需求2:将视图中的country_name修改为name
不能针对修改的部分单独做修改,所有列都必须写出

ALTER VIEW 
city_country 
(city_id,city_name,NAME)AS
SELECT 
      c1.id,
      c1.name,
      c2.name
FROM
      city c1,
      country c2
WHERE  
      c1.cid =c2.id;

结果:
city_country 视图:
在这里插入图片描述

<2>删除视图

删除视图
	标准语法
		DROP VIEW [IF EXISTS] 
		;

删除city_country视图

DROP VIEW IF EXISTS city_country
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陪雨岁岁年年

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值