视图

xiaoxiao2021-02-28  527

比如在项目中频繁要查询 商品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语句

视图的好处

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

视图和表是什么关系

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

转载请注明原文地址: https://www.6miu.com/read-21342.html

最新回复(0)