书犹药也,善读之可以医愚。|

Lilaaa

园龄:1年粉丝:0关注:0

视图和索引

视图和索引

1.视图

视图是隐藏了子查询、连接查询等操作的逻辑结构,由数据库的真实数据组成,是一个与真实表不同的虚拟表

  • 只保存定义而不存储数据
  • 行列数据均来自视图所引用的表,将在使用视图时动态生成
  • 被引用的列被删除视图会报错,删除基表并不会删除视图,需要手动删除视图
  • Hive视图是只读的,不能插入或装载数据,不能用作 LOAD / INSERT / ALTER 的目标

1.1视图使用场景

1.一些真实表对未授权的用户进行查看限制,可以选取能提供用户的列,并授权用户查看(如用户密码等)。

2.查询语句非常复杂时,如多表关联及多重子查询,可以用视图来代替复杂查询语句,简化查询语句。

1.2视图优势

简化用户对数据的理解,只关注相关的数据而不是全部数据。

降低查询复杂度。

1.3 视图基本操作

1.3.1 创建视图

CREATE VIEW [IF NOT EXISTS] [db_name.]view_name   -- 视图名称
  [(column_name [COMMENT column_comment], ...) ]    --列名
  [COMMENT view_comment]  --视图注释
  [TBLPROPERTIES (property_name = property_value, ...)]  --额外信息
  AS SELECT ...;

1.3.2 查看视图

-- 查看所有视图: 没有单独查看视图列表的语句,只能使用 show tables
show tables;
-- 查看某个视图
desc view_name;
-- 查看某个视图详细信息
desc formatted view_name;

1.3.3 修改视图

ALTER VIEW [db_name.]view_name AS select_statement;

1.3.4 删除视图

DROP VIEW [IF EXISTS] [db_name.]view_name;

1.4 物化视图和侧视图

1.4.1 物化视图( Materialized View)

对数据做的一个快照,在执行复杂的表连接或聚集等耗时较多的查询操作时,可以使用物化视图预先计算并保存计算结果。

与普通视图的区别:

物化视图会存储数据,与表一样的特征。

普通视图不会存储数据,是只有表结构的虚拟表。

本文作者:Lilaaa

本文链接:https://www.cnblogs.com/lila720/p/18273934

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   Lilaaa  阅读(14)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起