MYSQL中视图的使用

栏目: 数据库 · 发布时间: 5年前

内容简介:执行一条SQL,将结果集保存在一张虚拟表中注意事项• 在视图创建后,可以用与表基本相同的方式使用(查询、过滤、排序数据、与其他视图或连结、(添加、更新))

1、什么是视图

执行一条SQL,将结果集保存在一张虚拟表中

2、为什么要使用视图

  1. 重复利用 SQL 语句
  2. 简化SQL查询,快速取数据
  3. 只用知道表的部分结构
  4. 保护数据,根据特定授权
  5. 更改数据格式和表示,视图可返回与底层表的表示和格式不同的数据。

注意事项

• 在视图创建后,可以用与表基本相同的方式使用(查询、过滤、 排序 数据、与其他视图或连结、(添加、更新))

• 视图只是用来查看存储在别处的数据的设施,本身不包含数据,返回的数据也是从其他表检索出来的。

• 因为视图本身不包含数据,索引多个表连结或嵌套可能存在性能问题,需测试

3、规则和限制

  1. 表名必须唯一(与其他视图和表)
  2. 创建视图没有限制
  3. 足够权限
  4. 视图可以嵌套,可以从其他视图查询来构造一个视图
  5. 如果视图和从视图中查询都有order by,视图中的order by将被覆盖
  6. 视图不能索引
  7. 视图可以和表一起使用

4、使用视图

  1. 创建视图 create view
  2. 查看创建视图的语句。Show create view viewname
  3. 删除视图 drop view viewname
  4. 更新视图,1⃣️ 先drop后create 2⃣️ 直接用create or replace view
  5. 利用视图简化复杂的联结查询

5、利用视图简化复杂的联结查询

创建视图

CREATE VIEW productcustomers AS
SELECT cust_name, cust_contact, prod_id
FROM customers, orders, orderitems
WHERE customers.cust_id = orders.cust_id
AND   orderitems.order_num = orders.order_num

使用视图

SELECT cust_name, cust_contact
FROM productcustomers
WHERE prod_id = 'TNT2';

6、用视图重新格式化检索出的数据

select concat (rtrim(vend_name) , '(',rtrim(vend_country),')') as vend_title   from vendors order by vend_name;

如果经常用到这个格式的话,可以创建一个视图

CREATE VIEW vendorlocations AS
SELECT
    concat ( rtrim( vend_name ), '(', rtrim( vend_country ), ')' ) AS vend_title 
FROM
    vendors 
ORDER BY
    vend_name;

可以直接通过视图查询得出结果

SELECT * FROM vendorlocations;


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

编码整洁之道

编码整洁之道

罗伯特·C.马丁 / 电子工业出版社 / 2012-8 / 59.00元

忍受各种不确定性及不间断的压力并能够获取成功的程序员有一个共通特征:他们都深度关注软件创建实践。他们都把软件看做一种工艺品。他们都是专家。在“鲍勃大叔”看来“专业”的程序员不仅应该具备专业的技能,更应该具备专业的态度,这也是本书阐述的核心。专业的态度包括如何用带着荣誉感、自尊、自豪来面对进行软件开发,如何做好并做得整洁,如何诚实地进行沟通和估算,如何透明并坦诚地面对困难做抉择,如何理解与专业知识相......一起来看看 《编码整洁之道》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

html转js在线工具
html转js在线工具

html转js在线工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试