首页 / MYSQL / mysql---视图
mysql---视图
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了mysql---视图,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3000字,纯文字阅读大概需要5分钟。
内容图文
cust_name, cust_contact FROM customers, orders, orderitemsWHERE customers.cust_id = orders.cust_id AND orderitems.order_num = orders.order_num AND prod_id=‘TNT2‘;
创建视图order
create view other as SELECT cust_name, cust_contact FROM customers, orders, orderitems WHERE customers.cust_id = orders.cust_id AND orderitems.order_num = orders.order_num;
创建好后就可以这样取值了
SELECT cust_name, cust_contact FROM order WHERE prod_id=‘TNT2‘;
3、 作用
- 重用sql语句
- 简化复杂的SQL操作。在编写之后,可以方便的重用他而不必知道他的基本查询细节
- 适用标的组成部分而不是整个表
- 保护数据。可以给用户授予标的特定部分的范文全县而不是整个表的访问权限
- 更改数据格式和表示。视图可返回与底层表的表示和格式不同的数据
在视图创建之后,可以用于基本表相同的方式操作视图,如select操作,过滤和排序,将视图连接到其他的视图或表,甚至能添加和更新数据(添加更新数据存在着一些限制,用的很少)。
性能问题:由于视图补办含数据,所以每次查询都必须处理查询执行时所需的任一索引。如果使用多个连接和过滤创建了复杂的属兔或者嵌套的视图,可能会发现性能下降的很厉害,隐藏,再部署使用大量视图前要先测试。
4、 规则和限制
- 命名唯一
- 视图个数没有限制
- 权限要够
- 可以嵌套,即可以利用从其他视图中检索出的数据查询来构造一个视图
- order by 可以在视图中使用, 但是如果从该视图检索数据select中也有order by那么视图中的order by将会被覆盖
- 不能索引,也不能有关联的触发器或默认值
- 可以和表一起使用
5、 使用视图
- 创建 使用create view
- 查看创建视图的语句
SELECT cust_name, cust_contact FROM order WHERE prod_id=‘TNT2‘;
- 删除:使用drop
DROP VIEW viewname
- 更新:可以先用drop再用create,也可以直接用 CREATE OR REPLACE VIEW 表示如果不存在则新建,存在则替换
常用场景
简化复杂连接:如上示例,使用视图时,将指定的where子句添加到视图中已有的where中
重新格式化数据
输入:
SELECT Concat(RTrim(vend_name), ‘(‘ , RTrim(vend_country) , ‘)‘ ) AS vend_title FROM vendors ORDER BY vend_name;
输出:
+----------------------------+ | vend_title | +----------------------------+ | ACME(USA) | | AnvilsRUs(USA) | | FurballInc.(USA) | | JetSet(England) | | JouetsEtOurs(France) | | LTSupplies(USA) | +----------------------------+
创建视图
CREATE VIEW vendorlocations AS SELECT Concat(RTrim(vend_name), ‘(‘ , RTrim(vend_country) , ‘)‘ ) AS vend_title FROM vendors ORDER BY vend_name;
创建视图后查询语句直接 select * 即可
使用视图过滤掉不想要的数据
使用视图计算字段
6、更新视图
视图能否更新,要视情况而定
通常视图是可以更新的(即,可以对他们使用,insert、update、delete)。更新一个视图将更新其基表,对视图的操作实际上都是对基表的操作。
如果视图不能确定被更新的基数据,则不能被更新,如下的操作则不能更新:
- 分组(使用group by 和having)
- 连接
- 子查询
- 并
- 聚集函数(min、 count、sum等)
- distinct
- 导出(计算)列
本文中的大部分示例都是不能更新的, 因为视图主要用于数据检索
mysql---视图
标签:tac count 部分 语句 测试 添加 构造 col 组成
本文系统来源:https://www.cnblogs.com/musl/p/13178972.html
内容总结
以上是互联网集市为您收集整理的mysql---视图全部内容,希望文章能够帮你解决mysql---视图所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。