视图

比如在项目中频繁要查询 商品id、商品名称、商品品牌名称 三个字段的信息

把经常需要的字段存储到一个视图中,直接到该视图获得信息
视图是从一个或多个表中导出的虚拟表,视图的行为与表相似,但视图是虚拟的,视图包含一系列带有数据的行和名称的列。
在视图中用户可以使用select语句查询数据,也可以使用insert、update和delete修改记录[不推荐]。

创建视图

语法:
create [or replace] view 视图名称[(属性列)] as sql语句
create 表示创建视图,or replace表示替换已经创建的视图,可以不设置
属性列 给数据表字段起别名

视图是已经编译好的sql语句,其执行的速度、效率要比原生的sql语句更高。
视图的操作与数据表完全一致,包括select、insert、update、delete等都可以操作

多表或单表都可以创建视图
单表:把一个表中的几个字段查询出来创建视图
多表:把多个表中的若干个字段查询出来创建视图

更新视图有限制,有如下条件的,更新操作都不能执行:
① 视图中没有把实体表的非空字段包含进来
② 定义视图的select语句查询的字段是一个数学表达式
③ 定义视图的select语句查询的字段有使用聚合函数
④ 定义视图的select语句使用了distinct、union、group by或having子句
⑤ 多表视图只能修改,不能删除和添加

查询视图

desc 视图名称; //查看视图字段
show table status like ‘视图名称’; //查看视图状态
show create view 视图名称; //查看视图创建语句的
select * from information_schema.views where table_name=’视图名称’\G

删除视图

drop view [if exists] 视图名称;

修改视图

create or replace view 视图名称 as sql语句

视图的好处

  1. 简单化,视图可以简化用户对数据的理解,也可以简化他们的操作。
  2. 安全性,通过权限可以对视图的数据行、数据列进行授权访问控制
  3. 运行速度快,视图是已经编译好的sql语句,运行速度快

视图和表是什么关系

① 视图编译好的sql语句,表不是
② 视图没有物理记录,表有
③ 视图是逻辑概念存在,表是物理空间中的实体内容
④ 视图是查看表的一种方法,从安全方面看,视图可以防止用户接触数据表,因而用户不知道表结构
⑤ 视图的建立和删除只影响视图本身,不影响对应的基本表

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值