mysql中的视图
来源:互联网 发布:手机控制网络的软件 编辑:程序博客网 时间:2024/05/16 09:17
mysql中的视图
1.索引的优势:
虚拟存在的表,行和列的数据来自定义视图的查询中使用的表;
- 简单:不需要关心表结构,关联条件,筛选条件;已经是过滤好的结果集;
- 安全:对表的权限管理并不能限制到某个行某个列,通过视图可以;
- 数据独立:视图结构定了,可以屏蔽表结构的变化,增加列对视图没有影响,修改列名,可以修改视图解决,不影响访问者;
2.创建或者修改视图[create or replace 或者 alter]
create [or replace] [ algorithm={undefined | merge | temptable}]
view view_name [(column_list)]
as select_statement
[with [cascaded | local] check option]
-------------------------------------------------------
create or replace view view_nameas
select_statement;
-----------------------------------------------------
from关键字后面不能包含子查询;
视图是否可以更新和视图中查询定义有关:
1.包含聚合函数sum,HAVING等;
2.常量视图;
3.select中包含子查询;
4.jion
5.from 一个不能更新的视图;
6.where 子句的子查询引用了from子句中的表;
例子:
--包含聚合函数:
create or replaceviewpayment_sumas
selectstaff_id ,sum(account) from paymentgroup by staff_id;
--常量视图:
create or replaceviewpias
select3.1415926as pi;
--select中包含子查询
create or replaceviewcity_viewas
select(select city from city where city_id=1 );
-----------------------------------------------------------------
[with [cascaded | local] check option] 决定是否允许更新视图使得记录不在满足视图的条件;
local :满足本视图就可以更新;
cascaded:默认的,必须满足针对该视图的所有视图的条件;
例子:
create or replaceviewpayment_viewas
selectpayment_id ,amout frompayment
where amount < 10with check option; //默认cascaded
create or replaceviewpayment_view1as
selectpayment_id ,amout frompayment_view
where amount > 5withlocalcheck option; //local
create or replaceviewpayment_view2as
selectpayment_id ,amout frompayment_view
where amount > 5withcascadedcheck option; //cascaded
-------------------------------------------------------
select * from payment_view1 limit l;
updatepayment_view1set amount=10
where payment_id =3; //正确
updatepayment_view2set amount=10
where payment_id =3; //报错,payment_view2 是cascaded,必须满足payment_view才可以。等于10,不小于10.
删除视图:
drop view [if exists] view_name;
查看视图:
show tables; //显示表和显示有哪些视图
show table status like 'staff_list'; //查看视图信息
show create view staff_list; //查看某个视图的定义
0 0
- mysql中的视图
- MySql中的视图重写
- (8)mysql中的视图
- mysql中的视图
- MySQL中的视图操作
- Mysql中的视图
- MySQL中的视图
- mysql 中的视图
- mysql中的视图
- mysql中的视图
- MySQL中的视图
- MYSQL中的视图
- Mysql中的视图
- Mysql中的视图
- mysql中的视图小总
- MySQL中的视图及性能问题
- MySql中的视图的概念及应用
- MySQL中的视图及性能问题
- 数组及其内存管理——使用数组
- 关于Android内置ip遇到的问题
- 偏度(skewness)和峰度(kurtosis)
- 欢迎使用CSDN-markdown编辑器
- file i/o
- mysql中的视图
- LeetCode 476 Number Complement(位运算)
- dijsktra算法
- Windows Python 机器学习环境搭建
- Android中常见的热门标签的流式布局的实现
- c++primer 习题7.16
- Dojo javascript 框架控件性能优化最佳实践
- 算法之二分查找
- 基于PCA的人脸特征提取及人脸重建