数据库学习第九课

来源:互联网 发布:mac安装win10 不断重启 编辑:程序博客网 时间:2024/04/30 05:37

1,视图

      1.为什么需要视图

      简化查询,避免代码冗余,避免属性大量重复的sql语句

     2.什么是视图

      视图代码上看视图是个select语句

      视图逻辑上被当做一个虚拟表看待

    ( 感觉像函数)

   3.视图的格式

       create   view  视图的名字

               as    

                         ---select   的前面不能添加begin

                        select   语句

                        ---select   的后面不能添加end

    4.视图的优点

        简化查询

        增加数据的保密性

   create view v$_emp2
   as
   select empno,ename,job,mgr,comm,deptno from emp
select * from v$_emp2

       a用户只有emp2的权限,没有emp的访问权限,则可以有保密性

    5.视图的缺点

        增加数据库维护的成本,删除原始表不会删除依附于原始表上的视图,比如上面例子中的emp删除后视图依然存在

        或者emp中的ename字段删除后,视图就会报错,需要重新维护

        视图只是简化了查询,但是并不能加快查询的速度,这也是视图使用不足的地方

    6.注意的问题

       创建视图的select语句必须得为所有的计算列指定别名

                     create    view   v$_a

                               as

                               select  avg(sal)   from   emp

                     ------error

                     create    view   v$_a

                               as

                               select  avg(sal)   as  "avg_sal "  from   emp

                     ------ok

       视图不是物理表,是虚拟表

       不建议通过视图更新视图所依附的原始表的数据或结果

2,事务

      1.事务可以保证避免数据处于一种不合理的中间状态

      2.利用事务可以实现多个用户对共享资源的同时访问

      初学者必须要掌握的几个问题

              事务时用来研究什么的

              1.避免数据处于不合理的中间状态

                 转账

              2.怎样避免多用户同时访问时呈现给用户的数据时合理的很复杂,现在仍然没有很好的解决办法

             事务和线程的关系

                     事务也是通过锁来解决很多问题的

                    线程同步就是通过锁来解决的   synchronized

             事务和第三方插件的关系

                     直接使用事务库技术的难度很大,很多人借助第三方插件来实现

                     因此一般不需要研究数据库中的事物的语法细节

                     第三方插件想完成预期的功能,一般必须的借助数据库的事务机制

 

0 0
原创粉丝点击