【一文看懂SQL系列】SQL视图 |进阶干货,面试必备

21小时学数据库 数据库知识汇总

SQL视图

本文首先谈一下视图的含义和应用场景,之后对视图的创建、修改、删除、查看和更新进行讲解,最后对比了视图和表的异同。

含义
视图是MySQL 15.1 版本出现的新特性

  1. 视图是动态生成的,系统中只保存了视图的SQL逻辑,不保存查询结果
  2. 视图是一张虚拟表,但可以像使用普通表一样使用视图;

应用场景

  1. 当多个地方都用到相同的查询结果时
  2. 当该查询结果使用的SQL语句较复杂时
一、创建视图:

语法

CREATE VIEW 视图名
AS
查询语句

案例

两张表学生表stuinfos 和 专业表major
查询姓张的学生姓名和专业名

SELECT stuname, majorname
FROM stuinfos s
INNER JOIN major m ON s.majorid = m.id
WHERE s.stuname LIKE '张%'

如果查询学生姓名和对应的专业名很常用,那么可以将之封装起来,创建视图:

CREATE VIEW v1
AS
SELECT stuname, majorname
FROM stuinfos s
INNER JOIN major m ON s.majorid = m.id

使用试图查询 张同学的信息

SELECT * 
FROM v1
WHERE stuname LIKE '张%'
二、视图的修改

修改在这里的意思是整个视图的修改,注意和第五大点的视图更新意思不一样

方式一
CREATE OR REPLACE VIEW 视图名
AS
查询语句

方式二
ALTER VIEW 视图名
AS
查询语句
三、删除视图

语法:

DROP VIEW 视图1,视图2,..;

四、查看视图
方式一:
DESC v1; 

方式二:
SHOW CREATE VIEW v1;
五、视图的更新

这里的视图更新是指对局部信息的更新

视图的可更新性和视图中的查询定义有关系,以下类型的视图是不能更新的:

  1. 包含以下关键字的SQL语句:分组函数,DISTINCT, GROUP BY, HAVING, UNION 或UNION ALL
  2. SELECT中包含子查询
  3. JOIN
  4. FROM 一个不能更新的视图
  5. WHERE子句的子查询引用了FROM子句的表
六、视图和表的对比
	创建语法的关键字  是否实际占用物理空间   是否可以增删改查

视图   CREATE VIEW     只保存了SQL逻辑    一般不可以增删改

表 	  CREATE TABLE    是               增删改查
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值