zoukankan      html  css  js  c++  java
  • 视图、存储过程

    什么是视图

    视图(view):从一个或几个基本表中根据用户需要而做成一个虚表,具有和物理表相同的功能。可以对视图进行增,改,查操作,视图通常是有一个表或者多个表的行或列的子集。对视图的修改不影响基本表。它使得我们获取数据更容易,相比多表查询。

    l  视图是虚表,它在存储时只存储视图的定义,而没有存储对应的数据

    l  视图只在刚刚打开的一瞬间,通过定义从基表中搜集数据,并展现给用户

    视图与查询的区别

    视图和查询都是用由sql语句组成,这是他们相同的地方,但是视图和查询有着本质区别:

    它们的区别在于:

    l  存储上的区别:视图存储为数据库设计的一部分,而查询则不是.

    l  更新限制的要求不一样

    因为视图来自于表,所以通过视图可以间接对表进行更新,我们也可以通过update语句对表进行更新,但是对视图和查询更新限制是不同的,以下我们会知道虽然通过视图可以间接更新表但是有很多限制。

    l  排序结果:通过sql语句,可以对一个表进行排序,而视图则不行(Oracle数据库可以排序)。

    视图的优点

    为什么有了表还要引入视图呢?这是因为视图具有以下几个优点:

    l  能分割数据,简化观点。可以通过select和where来定义视图,从而可以分割数据基表中某些对于用户不关心的数据,使用户把注意力集中到所关心的数据列.进一步简化浏览数据工作  

    l  为数据提供一定的逻辑独立性。 如果为某一个基表定义一个视图,即使以后基本表的内容的发生改变了也不会影响“视图定义”所得到的数据

    l  提供自动的安全保护功能。 视图能像基本表一样授予或撤消访问许可权

    l  视图可以间接对表进行更新,因此视图的更新就是表的更新

    存储过程

    存储过程就是编译好了的一些sql语句。优点是允许模块化的设计,就是说只需创建一次,以后在该程序中就可以调用多次。如果某次操作需要执行多次SQL,使用存储过程比单纯SQL语句执行要快。可以用一个命令对象来调用存储过程。

    l  存储过程因为SQL语句已经预编绎过了,因此运行的速度比较快。

    l  可保证数据的安全性和完整性。通过存储过程可以使没有权限的用户在控制之下间接地存取数据库,从而保证数据的安全。通过存储过程可以使相关的动作在一起发生,从而可以维护数据库的完整性。

    l  可以降低网络的通信量。存储过程主要是在服务器上运行,减少对客户机的压力。

    l  存储过程可以接受参数、输出参数、返回单个或多个结果集以及返回值。可以向程序返回错误原因

    l  存储过程可以包含程序流、逻辑以及对数据库的查询。同时可以实体封装和隐藏了数据逻辑。


    内容来源于网络

  • 相关阅读:
    BZOJ-1034: [ZJOI2008]泡泡堂BNB (田忌赛马贪心)
    BZOJ-2190: [SDOI2008]仪仗队 (欧拉函数)
    BZOJ-1864: [Zjoi2006]三色二叉树 (julao都说简单的树形DP)
    BZOJ-2657: [Zjoi2012]旅游(journey) (树形DP求最长链)
    BZOJ-2241: [SDOI2011]打地鼠 (模拟+枚举)
    BZOJ-1207: [HNOI2004]打鼹鼠 (LIS类似DP)
    BZOJ-1821: [JSOI2010]Group 部落划分 Group (二分+并查集)
    BZOJ-1218: [HNOI2003]激光炸弹 (前缀和+模拟)
    [SinGuLaRiTy] ZKW线段树
    [SinGuLaRiTy] 字节大小
  • 原文地址:https://www.cnblogs.com/wangrui1587165/p/10119121.html
Copyright © 2011-2022 走看看