索引、视图创建删除

1.索引

创建:

CREATE INDEX  索引名  ON TABLE(列名1,列名2,...)

每个索引必须有唯一名字,在括号内列出索引包含的列(可以为多列)

扩展形式:

CREATE  [UNIQUE]  [CLUSTERED | NONCLUSTERED ]  INDEX  索引名

ON  {TABLE | VIEW } (列1 [ASC | DESC] ...)

UNIQUE:唯一性索引,不允许表中不同行在索引列上取相同值

CLUSTERED | NONCLUSTERED:聚集和非聚集索引。缺省时,创建为非聚集索引

ASC | DESC:索引表中索引值的排序次序

eg: CREATE INDEX  name_index ON  StudentInfo(Sname)

使用:

SELECT  column1, column2 ... FROM  TABLE 

WITH  (INDEX(index_name))

WHERE  condition

删除:

DROP  INDEX  index_name

SQL Sever 中,删除索引时一定要指明索引所在的表的名字

DROP  INDEX  table_name.index_name

使用索引的注意点:

1.对于小的数据表,使用索引不能够提高检索效率,因此不需要创建

2.当用户要检索的字段有很多数值或很多空值,为该字段创建索引,会大大提高效率

3.当用户查询表中的数据时,如果查询结果包含的数据行较少,一般少于数据总数的25%,使用索引会提高效率

4.索引列在where子句中应频繁使用

5.建表后,应先装数据,再建索引,否则,每次插入数据就要维护一次索引

6.索引提高了检索速度,但也降低了数据更新速度

7.尽量把表和它的索引放在不同磁盘上,会提高查询速度

视图

视图是从一个或多个表中导出的表,不是真实存在,而是一张虚表。通过视图看到的数据只是存放在基本表中的数据。当我们对视图中的数据进行修改时,相应的基本表的数据也会发生变化;同样,基本表的变化也会反映到视图中。

视图的优点:

1.简化操作。视图本身是一个复杂查询的结果集,因此每一次执行相同查询时,不必重写语句,而是对视图操作即可

2.定制数据。视图能够让不同的用户以不同的方式看到不同或相同的数据

3.合并分隔数据

4.安全性。通过视图,用户只能查看和修改他们所能看见的数据。其他数据库或者表既不可见也不能访问。视图所引用的表的访问权限与视图权限的设置互不影响

缺点:

1.性能。由于视图是虚拟表,每次查询还要执行定义视图的查询,影响了查询效率

2.更新限制。不是所有视图都是可更新的

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容