MySQL 视图

2021/6/10 19:34:19

本文主要是介绍MySQL 视图,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1. 视图简介

2. 视图使用

 

 

1. 视图简介

视图与表(有时为与视图区别,也称表为基本表——Base Table)不同,视图是虚拟的表,即视图所对应的数据并不进行实际存储,数据库中只存储视图的定义,也就是说视图本身没有数据,只是通过执行相应的 select 语句获得相应的数据。

使用视图的意义

  • 重用性:视图就像是函数,那些被经常使用的查询可以被定义为视图,从而使得用户不必为以后的操作每次指定全部的条件。
  • 简单性:看到的就是需要的。用户不必理解查询细节。
  • 安全性:可以对不同的用户,设定不同的视图。且用户只能以只读视图检索数据,但无法更新。
  • 独立性:更改数据格式和表示。视图可返回与基本表的表示和格式不同的数据。
  • 重构性:数据库视图可以实现向后兼容。假设我们有一个中央数据库,许多应用程序正在使用它。有一天,我们决定重新设计数据库以适应新的业务需求,希望删除一些表并创建新的表,并且不希望更改影响其他应用程序。在这种情况下,就可以创建与将要删除的旧表相同的模式的数据库视图。

视图的缺点

除了上面的优点,使用数据库视图有几个缺点:

  • 性能:从数据库视图查询数据可能会很慢,比如视图是基于其它视图创建的。
  • 表依赖关系:每当基本表更改表结构时,也必须一并更改视图。

视图的使用规则

  • 与表名一样,视图必须唯一命名。
  • 可创建的视图数目没有限制。
  • 为了创建视图必须有足够的权限。
  • 视图可以嵌套,即可以使用其它视图来构造一个视图。
  • ORDER BY 可以用在视图中,但如果从该视图检索数据的 SELECT 语句中也含有 ORDER BY,那么视图中的 ORDER BY 将被覆盖。
  • 视图无法创建索引,也不能有关联的触发器或默认值。
  • 视图可以和表一起使用。
 

2. 视图使用

创建视图 

CREATE VIEW v_ecs_order_info AS
    SELECT
        order_id,
        order_sn,
        order_amount,
        consignee
    FROM
        ecs_order_info;

-- 使用视图来查询数据
select * from v_ecs_order_info;

查看视图

show table status where comment='view';  -- 查看现有的视图及其信息

删除视图

DROP VIEW v_ecs_order_info;

更新视图

--方式1:先用 DROP 删除视图,再用 CREATE 创建视图。


--方式2:使用 CREATE OR REPLACE VIEW
-- 如果要更新的视图不存在则会创建一个视图,若存在则会替换原来的视图
CREATE OR REPLACE VIEW v_ecs_order_info AS
  SELECT
    order_id,
    order_sn,
    order_amount,
    pay_status,
    consignee
FROM
    ecs_order_info;


-- 方式3:使用 ALTER
ALTER VIEW v_ecs_order_info AS
  SELECT
    order_id,
    order_sn,
    order_amount,
    pay_status,
    consignee
FROM
    ecs_order_info;

 



这篇关于MySQL 视图的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程