mysql 视图

mysql 视图,第1张

1、什么是视图

视图:MySQL从5.0.1版本开始提供视图功能。一种虚拟存在的表,行和列的数据来自定义视图的查询中使用的表,并且是在使用视图时动态生成的,只保存了sql逻辑,不保存查询结果

2、视图应用场景

多个地方用到同样的查询结果该查询结果使用的sql语句较复杂

4、视图的好处

使用简单安全数据独立 

5、创建或者修 改视图

创建视图的语法:

修改视图的语法

6、视图更新性

视图的可更新性和视图中查询的定义有关系,以下类型的视图是不能更新的。(1)包含以下关键字的sql语句:分组函数、distinct、group  by、having、union或者union all(2)常量视图(3)Select中包含子查询(4)join(5)from一个不能更新的视图(6)where子句的子查询引用了from子句中的表

7、删除视图的语法

用户可以一次删除一个或者多个视图,前提是必须有该视图的drop权限。

8、查看视图结构的语法

show tables如果需要查询某个视图的定义,可以使用show create view命令进行查看

视图2个用处,一个是方便查询,比如下面的例子:

SQL>CREATE VIEW

2v_sale_report_sum

3 AS

4 SELECT

5sale_item,

6SUM(sale_money) AS sale_money

7 FROM

8sale_report

9 GROUP BY

10sale_item

View created.

SQL>SELECT * FROM v_sale_report_sum

不使用视图的话,你每查询一次,都要写一段很长的 SQL 语句。又是SUM 又是GROUP BY的。

有了视图以后,一行SQL就解决问题。

还有一个用处,就是安全方面上的设置需要。

比如 人力资源那里,有一个员工表,里面有

员工的姓名、性别、生日、籍贯、工作年限、工资、所属部门 等信息。

人力资源的人,希望你帮忙写一个2011年,工作排版表的程序,但是又不希望你“知道得太多”。

那么就创建一个视图

CREATE VIEW v_员工 AS

SELECT

姓名, 性别, 所属部门

FROM

员工表

然后就给你一个 v_员工 的 检索权限,让你去写 排班程序去了。

mysql 与 oracle 都有视图

procedure 也就是存储过程,也就是某些与数据库 *** 作比较紧密的 *** 作,写在存储过程里面,比写在 java 或者 C# 之类的外部,效果要好一些。

例如一个百货商店的数据库,每天晚上营业结束了,要统计销售额,然后计算每个商品分类下面,当天的营业额是多少,然后将统计数据,插入到 统计表中。

这些 *** 作,基本上就是 SELECT SUM / GROUP BY , 然后 INSERT INTO 的 *** 作。

直接在数据库内部处理就可以了。

没必要把一大堆查询结果,先传递到外边的一个 java 或者 c#写的客户端。

然后再通过 客户端传递一大堆的 INSERT INTO 语句回来。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7509645.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-06
下一篇 2023-04-06

发表评论

登录后才能评论

评论列表(0条)

保存