视图操作

本文介绍了视图在数据库中的作用,如数据保护和访问限制,并详细阐述了视图的基本功能,包括视图的创建、DML操作限制、安全性选项(如DEFINER和SQL SECURITY)以及视图查询的处理方法。同时,讨论了如何通过视图进行数据操作并维护数据一致性。
摘要由CSDN通过智能技术生成

需求(在什么情况下使用视图):

1.保护表中其它数据不被insert、delete、update(只能对特定的数据进行操作)

2.限制用户对表数据的访问范围(用户只能修改一部分数据)

 

 

一、视图的基本功能

CREATE

[OR REPLACE]------------------------------------------------------如果视图存在则替换它

[ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]

[DEFINER = { user | CURRENT_USER }]

[SQL SECURITY { DEFINER | INVOKER }]

VIEW view_name [(column_list)]

AS select_statement

[WITH [CASCADED | LOCAL] CHECK OPTION]

 

1、视图是一个逻辑表,它本身并不包含数据。通过它,可以展现基表的部分数据。用来创建视图的表叫做基表BASE TABLE。视图是作为一个SELECT语句保存在数据字典中的(可以理解为视图是 select的一个别名),视图一旦创建完毕,就可以像一个普通表一样使用。视图主要用来查询


 

create view v_con as select a.PLAYERNO,NAME,b.TEAMNO,DIVISION,MATCHNO,WON,LOST from PLAYERS a,TEAMS b,MATCHES c where a.PLAYERNO=b.PLAYERNO and b.TEAMNO=c.TEAMNO;

Query OK, 0 rows affected (0.00 sec)

 

2、显式的指定视图的列名

注意:该语法要求视图后面的列的数量必须匹配select子句中的列的数量

mysql> create view v_con_1(球员编号,姓名,队号,分隔,比赛编号,赢次数,输次数) as select a.PLAYERNO,NAME,b.TEAMNO,DIVISION,MATCHNO,WON,LOST from PLAYERS a,TEAMS b,MATCHES c where a.PLAYERNO=b.PLAYERNO and b.TEAMNO=c.TEAMNO;

Query OK, 0 rows affected (0.01 sec)

 

3、嵌套视图:视图可以定义在另外一个视图上面

使用WITH CHECK OPTION约束时,可以使用CASCADED或者 LOCAL选项指定检查的程度:

WITH CASCADED CHECK OPTION:检查所有的视图(例如,嵌套视图及其底层的视图)

WITH LOCAL CHECK OPTION:只检查将要更新的视图本身(对嵌套视图不检查其底层的视图)

不指定选项则默认是CASCADED

 

4、查找视图信息:信息记录在information_schema数据库中的views表中(以下是views表的一部分数据)

 

查新下TENNIS数据库包含的视图的名称:

SELECT
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值