视图简介–基于mysql

星期日, 2008-09-07 | Author: liyz | Database | 3,071 views

视图的优点:

   1.简单:不关心后面对应的表结构、关联条件和筛选条件,是过滤好的结果集

   2.安全:只能访问被允许的结果集,对表的权限管理并不能限制到某个行某个列,可以通过视图实现

   3.数据独立: 屏蔽表结构变化对用户的影响,源表增加列对视图没有影响;修改列名,可以通过修改视图来解决

视图操作:

      1.创建视图

          mysql>>>> create or replace view liyz_list_view AS select s.id,s.name,a.address from liyz as s,address as a where s.address_id=a.address_id;

注意:mysql的from后面不能跟子查询(迁移别的数据库的时候注意)

    以下视图不能更新:

          1.包含条件语句的:聚合函数(SUM,MIN,MAX,COUNT等)、DISTINCT,GROUP BY、HAVING 、UNION或者UNION ALL

          2.常量视图

          3.select中包含子查询

          4.jion

          5.from一个不能更新的视图

          6.where 字句的子查询引用了from字句中的表

 常量视图:

     mysql>>>>create or replace view pi as select 3.1415926 as pi;

视图更新条件:

       with[cascaded|local] check option

         local是只有满足本视图的条件就可以更新了

         cascaded 则要满足所有针对该视图的所有视图的条件才可以更新(默认为此cascaded)

   mysql>>>> create or replace view payment_view as select payment_id ,amount from payment where amount<10 with check option;

  mysql>>>>create or replace view payment_view1 as select payment_id,amount from payment_view where amount>5 with local check option;

  mysql>>>>create or replace view payment_view2 as select payment_id,amount from payment_view where amount>5 with cascaded check option;

   更新视图:

    mysql>>>update payment_view1 set amount=10 where payment_id=3; —-ok

   mysql>>>update payment_view2 set amount=10 where payment_id=3; —–failed

 

2.删除视图

      myql>>>drop view liyz_list;

3. 查看视图

   用show tables 也可以看到视图,使用show table STATUS

  mysql>>> show table status like ‘liyz_list’;

 查询视图的定义:

     mysql>>>show create view liyz_list;

     通过查看系统表的来查看视图的相关信息

   select * from views where table_name=’liyz_list’;

 

小结:看了那么多,也只是把一部分查询条件做了一个查询放到了view中了,对于我也只是简单了解下,没有具体在项目中用过,可能以后会能用到!先做下知识的准备吧

 

Tags: , ,

文章作者: liyz

本文地址: https://www.pomelolee.com/11.html

除非注明,Pomelo Lee文章均为原创,转载请以链接形式标明本文地址

No comments yet.

Leave a comment

Search

文章分类

Meta