MySQL 视图

数据库优化 学习笔记

一、视图简介


1.1、什么时视图

  • 通俗的讲,视图就是一条SELECT语句执行后返回的结果集。所以我们在创建视图的时候,主要的工作就落在创建这条SQL查询语句上。
  • 视图是对若干张基本表的引用,是一张虚表,是查询语句执行的结果,不存储具体的数据(基本表数据发生了改变,视图也会跟着改变);
  • 方便操作,特别是查询操作,减少复杂的SQL语句,增强可读性;

1.2、视图的出现

        对于复杂的查询,往往是有多个数据表进行关联查询而得到,如果数据库因为需求等原因发生了改变,为了保证查询出来的数据与之前相同,则需要在多个地方进行修改,维护起来非常麻烦。

注意: 视图可以查看、删除(删除整个视图);不可进行修改、插入、删除视图的的数据(因为是个虚表,相当于是某条 select 的结果投影)。



二、视图的操作


2.1、视图定义

	-- 视图名建议以 v_ 开头
	-- 一般用于多表查询时, 所以名字后半部分可以是用表名来表示
	-- 如 查询 students表 与 class表 连接, v_stu_cla 
	
	create view 视图名字 as select语句;

2.2、查看视图

	-- 查看表会将所有的视图也列出来
	show tables;

2.3、使用视图

	-- 视图的用途就是查询
	select * from v_stu_score;

2.4、删除视图

	-- 只能删除整个视图, 不能删除视图的数据
	-- drop view 视图名
	drop view v_stu_score

2.5、视图的修改

        有下列内容之一,视图不能做修改(限制很多, 且视图本来更多的也是为了简化复杂查询语句):

  • select 子句中包含 distinct
  • select 子句中包含组函数
  • select 语句中包含 group by 子句
  • select 语句中包含 order by 子句
  • where 子句中包含相关子查询
  • from 子句中包含多个表
  • 如果视图中有计算列,则不能更新
  • 如果基表中有某个具有非空约束的列未出现在视图定义中,则不能做 insert 操作

2.6、视图的作用

  1. 提高了重用性,就像一个函数(实现某条 select 语句)
  2. 对数据库重构,却不影响程序的运行
  3. 提高了安全性能,可以对不同的用户
  4. 让数据更加清晰
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值