MYSQL中视图的用法介绍(代码示例)

不言
发布: 2019-02-27 13:51:38
转载
3166人浏览过

本篇文章给大家带来的内容是关于MYSQL中视图的用法介绍(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

1、什么是视图

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

(相关推荐:MySQL教程

2、为什么要使用视图

  1. 重复利用SQL语句

  2. 简化SQL查询,快速取数据

  3. 只用知道表的部分结构

  4. 保护数据,根据特定授权

  5. 更改数据格式和表示,视图可返回与底层表的表示和格式不同的数据。

注意事项
• 在视图创建后,可以用与表基本相同的方式使用(查询、过滤、排序数据、与其他视图或连结、(添加、更新))
• 视图只是用来查看存储在别处的数据的设施,本身不包含数据,返回的数据也是从其他表检索出来的。
• 因为视图本身不包含数据,索引多个表连结或嵌套可能存在性能问题,需测试

3、规则和限制

  1. 表名必须唯一(与其他视图和表)

  2. 创建视图没有限制

  3. 足够权限

  4. 视图可以嵌套,可以从其他视图查询来构造一个视图

  5. 如果视图和从视图中查询都有order by,视图中的order by将被覆盖

  6. 视图不能索引

  7. 视图可以和表一起使用

4、使用视图

  1. 创建视图 create view

    追梦flash企业网站管理模板A系列11.0
    追梦flash企业网站管理模板A系列11.0

    追梦A系列(11.0版本,以下11.0均简称为A)是针对企业网站定制设计的,模板采用全新AS3.0代码编辑,拥有更快的运行和加载速度,A系列模板主要针对图片展示,拥有简洁大气展示效果,并且可以自由扩展图片分类,同时还拥有三个独立页面介绍栏目,一个新闻栏目,一个服务介绍栏目,一个幻灯片展示和flv视频播放栏目。A系列模板对一些加载效果进行了修改,包括背景的拉伸模式以及标题的展示方式等都进行了调整,同

    追梦flash企业网站管理模板A系列11.0 0
    查看详情 追梦flash企业网站管理模板A系列11.0
  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;
登录后复制

7、用视图过滤不想要的数据

create view custmeremaillist AS
SELECT cust_id ,cust_name,cust_email
from customers
where cust_email is not NULL;
登录后复制

直接使用视图

SELECT * from custmeremaillist ;
登录后复制

8、使用视图与计算字段

mysql查询

SELECT
    prod_id,
    quantity,
    item_price,
    quantity * item_price AS expanded_price 
FROM
    orderitems
WHERE order_num=20005;
登录后复制

创建视图

CREATE VIEW orderitemsexpanded AS
SELECT
    order_num,
    prod_id,
    quantity,
    item_price,
    quantity * item_price AS expanded_price 
FROM
    orderitems
WHERE order_num=20005;
登录后复制

使用视图

SELECT
    *
FROM
    orderitemsexpanded
WHERE order_num=20005;
登录后复制

9、更新视图

通常,视图是可以更新的(insert、update、delete)。更新视图将更新基表。如果视图中有以下定义将不能被更新。

1. 分组(group by 和 having)
2. 联结
3. 自查询
4. 并
5. 聚合函数(min()、count()、sum()等)
6. Distinct
7. 导出(计算)列
登录后复制

所以视图最好直接使用select查询。


以上就是MYSQL中视图的用法介绍(代码示例)的详细内容,更多请关注php中文网其它相关文章!

相关标签:
最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:segmentfault网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号