MySQL的视图

(1)MySQL从5.0.1版本开始提供视图功能

(2)视图是虚拟表,由实际存在的表动态生成。

(3)为什么使用视图?

安全,简单,数据独立。

(4)注意:创建和修改视图要有相关的权限。

(5)MySQL的视图功能是比较弱的,视图的可更新性在这些情况下受限:

a.   包含以下关键字:聚合函数,DISTINCT ; GROUP BY ; HAVING  ,UNION , 或者UNION ALL

b.  常量函数

c. SELECT 中包含子查询

d. JOIN 

e. FROM 一个不能更新的视图

f. WHERE 子句的子查询引用了FROM子句中的表。

(5)创建视图的语法:

CREATE  [OR REPLACE]  [ALGORRITHM={UNDEFINED | MERGE | TIMESTAMP}]

VIEW view_name[(column_list)]

AS select_statement

[WITH [CASCADED | LOCAL ]CHECK OPTION]

 

注释:

WITH[CASCADE | LOCAL] CHECK OPTION 决定了是否允许更新数据使记录不再满足视图的条件。

LOCAL:满足本视图的条件可以更新。

CASCADE:满足所有针对该视图的所有视图的条件才可以更新。

默认:CASCADE 

 

示例:

CREATE  OR  REPLACE VIEW staff_list_view AS

SELECT s.staff_id ,s.first_name,s.last_name,a.address

FROM staff AS s,address AS a

where s.address_id=a.address_id;

 

修改视图:

ALTER [ALGORITHM={UNDEFINED| MERGE | TIMESTAMP}]

VIEW view_name [(column_list)]

AS select_statement

[WITH [CASCADE | LOCAL] CHECK OOPTION]

 

删除视图:

DROP VIEW [IF EXISTS] view_name [RESTRICT | CASCASE]

 

示例:

drop  view  staff_list;

 

附注:

查看该数据库中有哪些表和视图:

show tables ;  

所以对视图起名字的时候要注意起有区别的特殊标识符。

 

查看一个表(视图)的具体信息:

SHOW   TABLE  STATUS [FROM db_name] [LIKE 'pattern']

 

查看表定义:

show create view staff_list;\G

select * from views where table_name='staff_list'\G

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值