视图自学详解

1:什么是视图?
试图是一种查看数据库中一个或多个表中数据的方法。视图是一种虚拟表,它并不是数据库中存储数据值的集合,它的行和列来自查询中引用的表。在执行时,它直接显示来自表中的数据。

通俗点说:
视图可以被看成是虚拟表或存储查询。可通过视图访问的数据不作为独特的对象存储在数据库内。数据库内存储的是 SELECT 语句。SELECT 语句的结果集构成视图所返回的虚拟表。用户可以用引用表时所使用的方法,在 Transact-SQL 语句中通过引用视图名称来使用虚拟表。使用视图可以实现下列任一或所有功能:
将用户限定在表中的特定行上。
例如,只允许雇员看见工作跟踪表内记录其工作的行。
将用户限定在特定列上。
例如,对于那些不负责处理工资单的雇员,只允许他们看见雇员表中的姓名列、办公室列、工作电话列和部门列,而不能看见任何包含工资信息或个人信息的列。
将多个表中的列联接起来,使它们看起来象一个表。

2:视图的作用。
筛选表中的行,防止未经许可的用户访问表中的数据。将多个物理数据表抽象成一个逻辑数据表。

3:视图语法。

    1)创建视图:
    ```
     create view view_name
       as 
     <select 语句>
    ```

     2)修改视图:

    ```
     alter view view_name
      as 
     <select 语句>
    ```

    3)删除视图:

    ```
     drop view view_name
    ```

    4)修改视图名称:

    ```
    exec  sp_rename  view_oldname   view_newname
    ```

    5) 查看视图

    ```
    select  列名  from view_name
    ```

4:注意事项:

1:每个视图中可以使用多张表。
2:与查询相似,一个视图可以嵌套另一个视图,但最好不要超过3层。
3:视图定义中  select 语句不能包括一下内容(
    order by 字句,除非在select 语句的选择列中也有一个top字句
    into 关键字
    引用临时表或表变量
)

5:视图的优缺点:
优点: 简单、 安全、逻辑数据独立
缺点: 性能,修改限制
如果视图中存在函数或涉及复杂的多表查询,那么用户在查询视图的过程中会花费一定的时间。 对于简单的视图可以使用update 语句更新,如果对于复杂的视图可能就不能使用了。删除亦是如此。所以对于视图的用法最好只停留到查询上面。

6:视图与存储过程的区别:
1:存储过程是程序化的sql,可以实现一般sql所不能实现的功能。
如:先检索一些信息然后再更新到某表当中。这就可以用不带参数的存储过程实现。
2:视图是虚拟表,不存储数据,存储的是sql,检索视图的时候实际是在执行试视图中的sql。
3:存储过程中有全局变量和外部变量,它可以接受参数、输出参数、返回单个或多个结果集以及返回值等强大的功能。 可以简单的理解为“存储过程就是数据库中的程序”。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值