一.视图

1.视图概念

  ①视图是包含由一张或多张表的列组成的数据集。该表中的记录是由一条查询语句执行后所得到的查询结果所构成的。

  ②视图是一张虚拟表,它表示一张表的部分数据或多张表的综合数 据,其结构和数据是建立在对表的查询基础上。

  ③视图中并不存放数据,而是存放在视图所引用的原始表(基表)中。

  ④同一张原始表,根据不同用户的不同需求,可以创建不同的视图。

2.视图的用途

  ①筛选表中的行

  ②防止未经许可的用户访问敏感数据

  ③降低数据库的复杂程度

  ④将多个物理数据库抽象为一个逻辑数据库。

3.使用视图的好处

  ①限制用户只能存取表内特定的列

  ②不用重新建表即可存取想要的数据

  ③省略复杂的select命令和表间的连接产生数据,直接使用视图即可得到相关的数据

创建视图时,需注意的情况:

  (1)只能在当前数据库中创建视图,在视图中最多只能引用1024列,视图中记录数目限制只有其基表中的记录数决定。

  (2)视图名称必须遵循标识符的原则,且对每个用户必须唯一。此名称不得与用户拥有的任何表的名称相同。

  (3)如果视图引用的基表或视图被删除,则该视图不能再被引用,直到创建新的基表或视图。

  (4)如果视图中某一列是函数、数学表达式、常量或来自多张表的列名相同,则必须为列定义名称。

  (5)不能在视图上常见索引、不能在规则/默认/触发器的定义中引用视图。

  (6)通过视图查询数据时,要确保语句中涉及的数据库对象存在,每个数据库对象在语句的上下文中有效,且数据修改语句不能违反数据完整性规则。

4.创建视图

创建视图语法:

create view view_name [(column_list)]

  as

  select_statement(select 语句)
  • view_name:为新创建的视图指定名称
  • column_list:当前表中列的名称
  • select_statement:定义了一张或多张表中检索出行和列的select语句

注意:在视图中的select语句不能包含order by或into子句,另外在查询中不能引用临时表

5.使用视图的优点:

  (1)视点集中、(2)、简化操作(3)、定制数据(4)、合并分割数据(5)、安全性:视图可作为一种安全机制

二、索引

  1.索引的定义:

    索引是一个单独的、物理的数据库结构,是数据库的一张表中所包含的值得列表,其中注明了表的各个值所在的存储位置。索引依赖于表的建立,提供了编排表中的方法。

2.索引的类型:

    (1)、主键索引:

       在数据库中为表定义一个主键就自动创建主键索引,主键索引是唯一索引的特殊类型。主键索引要求每一个值都是唯一。在查询中使用主键索引能提高访问数据的速度。

    (2)、聚集索引与非聚集索引:

        聚集索引是基于记录内容在数据表内的排序和存储。在设置聚集索引时,数据表中的数据也会按照索引的顺序来存放。

       非聚集索引与聚集索引的最大区别是:不会为数据表列的数据进行物理上的排序,只是将索引建立在索引页上。

     (3)、唯一索引

      唯一索引能确保索引无重复。

!注意:唯一性约束所在的列允许空值,但主键约束所在的列不允许空值。

 3.创建索引需要注意的事项:

      (1)、最好对空表创建索引,建议应在创建表的同时设置索引

     (2) 、如果既要创建聚集索引又要创建非聚集索引,那么最好先创建聚集索引,再创建非聚集索引。

!注意:如果在创建表时已设置了主键,则数据表会自动生成了一个主键索引。

 4.创建索引

create [unique] [clustered | nonclustered] index index_name
on table_name(column_name[,....])
[with
fillfactor=fillfactor
]

  其中各个参数的含义如下:

  unique:用来指定所要创建的索引是否是唯一索引,建立唯一索引的字段中不能有重复数据。

  clustered | nonclustered:指定clustered来创建聚集索引,使用nonclustered来创建非聚集索引,两者不能同时使用。每一张表只能创建一个聚集索引,但每一张表可以创建249个非聚集索引。

  index_name:为新创建的索引指定名称,索引名要符合命名规范。

  table_name:创建索引的表的名称。

  coloum_name:索引中包含列的名称。

  fillfacor:指定索引页的填充率,指示该索引页填充空间所占百分比。

!注意:在删除索引时,必须为drop index语句指定表明和索引名。

  创建索引示例:

/*使用索引,指定按索引index_cardInfo_CardBalance进行查询*/

select  *  from cardInfo
with(index=index_cardInfo_CardBalance)
where CardBalance between 10 and 100 --查询在10到100元间的余额

  5.索引的优缺点:

     优点:

    (1)、创建唯一性索引,保证数据库表中每一行数据的唯一性。

    (2)、大大加快数据的检索速度,这是创建索引的最主要原因

    (3)、加速表与表之间的连接,特别是在实现数据的参照完整性方面

    (4)、在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间

    (5)、通过使用索引,可以在查询的过程中使用优化隐藏器,提高系统的性能

    缺点:

    (1)、创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加

    (2)、索引要占物理空间,如果创建索引,那么需要的空间就更大

    (3)、当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,降低了数据的维护速度。

6SQL SERVER视图/索引的更多相关文章

  1. (4.22)sql server视图/索引视图概念

    (4.22)sql server视图 关键词:sql server视图.索引视图 SQL Server视图是由SQL语句组成的逻辑数据库对象.它也可以称为由SQL语句组成的虚拟表,该SQL语句可能包含 ...

  2. SQL Server 视图索引

    在视图上创建索引的另一个好处是:查询优化器开始在查询中使用视图索引,而不是直接在 FROM 子句中命令视图.这样一来,可从索引视图检索数据而无需重新编码,由此带来的高效率也使现有查询获益.在视图上创建 ...

  3. 使用SQL Server 2000索引视图提高性能

    什么是索引视图? 许多年来,Microsoft? SQL Server? 一直都提供创建虚拟表(称为视图)的功能.在过去,这些视图主要有两种用途: 提供安全机制,将用户限制在一个或多个基表中的数据的某 ...

  4. 11、SQL Server 视图、数据库快照

    SQL Server 视图 什么是视图? 视图是一个虚拟的表,内容源于查询的结果集.只有当视图上建立了索引后,才会具体化. 视图可以筛选和处理数据,而不是直接访问基础表.如:创建一个视图,只展示源表中 ...

  5. 84. 从视图索引说Notes数据库(下)

    作用和代价上文介绍了关系型数据库里的索引.Notes数据库里的索引隐藏在视图概念里(本文的讨论仅仅针对Notes的视图索引,不包括全文索引.).开发者创建的视图仅仅是存放在数据库里的一条设计文档.数据 ...

  6. SQL Server 数据库索引

    原文:SQL Server 数据库索引 一.什么是索引 减少磁盘I/O和逻辑读次数的最佳方法之一就是使用[索引] 索引允许SQL Server在表中查找数据而不需要扫描整个表. 1.1.索引的好处: ...

  7. 83. 从视图索引说Notes数据库(上)

    索引是数据库系统重要的feature,不管是传统的关系型数据库还是时兴的NoSQL数据库,它攸关查询性能,因而在设计数据库时须要细加考量.然而,Lotus Notes隐藏技术底层.以用户界面为导向.追 ...

  8. 使用SQL Server视图的优缺点

    SQL Server视图我们经常会用的到,下面就为您介绍使用SQL Server视图的优缺点,希望可以对您SQL Server视图有更多的了解. 在程序设计的时候必须先了解视图的优缺点,这样可以扬长避 ...

  9. [转]SQL SERVER整理索引碎片测试

    SQL SERVER整理索引碎片测试 SQL SERVER整理索引的方法也就这么几种,而且老是自作聪明的加入智能判断很不爽,还是比DBMS_ADVISOR差远了: 1SQL SERVER 2000/2 ...

随机推荐

  1. Geometry shader总结

    什么是Geometry Shader GS存在于vertext shader和固定功能vertex post-processing stage之间,它是可选的不是必要的.GS的输入是单个primiti ...

  2. 从append追加的<tr>里传ID参数给js函数

    今天这个小问题几乎把我整崩溃 $.each(data.list, function (index, item) { i++; shenhe = "待审核"; tixing = it ...

  3. GsonUtils.getGson().fromJson() 转泛型集合

    List<QiTaFree> qiTaFreeList = GsonUtils.getGson().fromJson(exhiMain.getQiTaFressJson(), new Ty ...

  4. 第一部分:C9高校、985和211、双一流

    第一部分:C9高校.985和211.双一流 C9高校,包括:清北.复交.浙南.中科大西交大和哈工大.1998年5月4日,时任国家主席江.泽.民在庆祝北京大学建校100周年大会上代表中国共.产.党和中华 ...

  5. 关于 Integer 的一个坑

    其实 JDK 中有很多小坑, 我们稍微不注意, 就掉进去了, 然后调了半天 bug, 也不知道为何. 很闹心! 这里说一下, 在Integer中的一个小坑. 看一个小例子: @Test public ...

  6. firefox浏览器不支持复制粘贴(linux)

    在Linux主机下使用firefox在线编辑文章时,提示不支持复制粘贴选项,并给出了解决方法,记录一下 1.先找到本机firefox的配置文件的所在文件夹位置,不知道的请遵循以下步骤 点击菜单栏的帮助 ...

  7. EMIF接口的寻址问题

    2014年8月26日,一个网友提出了一个关于EMIF访问地址很典型的问题,在此我阐述一下我的个人理解. 一.提出问题 他问的问题没有这么简单,但是差不多就是这种意思,我在晚上找个典型事例,如下: DS ...

  8. 循序渐进Python3(十二) --1--  web框架之django

    Python的WEB框架有Django.Tornado.Flask 等多种,Django相较与其他WEB框架其优势为: 大而全,框架本身集成了ORM.模型绑定.模板引擎.缓存.Session等诸多功能 ...

  9. FP 某段SQL语句执行时间超过1个小时,并报错:ORA-01652: 无法通过 128 (在表空间 TEMPSTG 中) 扩展

    一.出现如下两个错误:1.某一段SQL语句执行时间超过1个小时:2.一个小时后,提示如下错误:ORA-01652: 无法通过 128 (在表空间 TEMPSTG 中) 扩展 temp 段ORA-065 ...

  10. [转]保护眼睛的Windows和IE、Firefox、谷歌等浏览器颜色设置

    保护眼睛的Windows和IE.Firefox.谷歌等浏览器颜色设置  长时间在电脑前工作,窗口和网页上的白色十分刺眼,眼睛很容易疲劳,也容易引起头痛,其实我们可以通过设置Windows窗口和软件的颜 ...