索引和视图 PPT课件
合集下载
第6章-索引和视图PPT课件

一个表只能包含一个聚集索引,但一个索引可以包含多个列。 在定义基本表时,可以通过定义主码约束自动创建一个唯一性
(UNIQUE)的聚集索引。(实际上在物理结构上,与主码约束 相对应是唯一性的聚集索引。) 也可以使用CREATE INDEX语句创建聚集索引。 聚集索引不适用于频繁更改的列和字节长的列。
视图的内容是由SELECT语句的结果集构成。
和真实的表一样,视图也包括几个被定义的数据列和多 个数据行,但从本质上讲,这些数据列和数据行来源于 其所引用的表。
数据库中只存放视图的定义,视图所对应的数据并不实 际地以视图结构存储在数据库中,而是存储在视图所引 用的表中。
当视图引用的基本表中的数据发生变化时,从视图中查 询出的数据也随之改变。
SELECT Student.Sno, Sname, Sdept ,Grade FROM Student , SC WHERE Student.Sno = SC.Sno AND o = 'c05'
-
22
查询视图V_IS_S1
-
23
3.在已有视图上定义新视图
在视图上再建立视图,这时作为数据源的视图必须是已 经建立好的。
列中的数据是唯一的,就可以在同一个表上创 建一个唯一的聚集索引和多个唯一的非聚集索 引。
-
11
示例
例1.为Student表的Sno列创建唯一聚集索引。 CREATE UNIQUE CLUSTERED INDEX Sno_ind ON Student (Sno)
例2.为SC表创建Cno列(升序)Grade(降序) Sno (升序)的非聚集复合索引。 CREATE INDEX CGS_ind ON SC ( Cno, Grade DESC, Sno )
(UNIQUE)的聚集索引。(实际上在物理结构上,与主码约束 相对应是唯一性的聚集索引。) 也可以使用CREATE INDEX语句创建聚集索引。 聚集索引不适用于频繁更改的列和字节长的列。
视图的内容是由SELECT语句的结果集构成。
和真实的表一样,视图也包括几个被定义的数据列和多 个数据行,但从本质上讲,这些数据列和数据行来源于 其所引用的表。
数据库中只存放视图的定义,视图所对应的数据并不实 际地以视图结构存储在数据库中,而是存储在视图所引 用的表中。
当视图引用的基本表中的数据发生变化时,从视图中查 询出的数据也随之改变。
SELECT Student.Sno, Sname, Sdept ,Grade FROM Student , SC WHERE Student.Sno = SC.Sno AND o = 'c05'
-
22
查询视图V_IS_S1
-
23
3.在已有视图上定义新视图
在视图上再建立视图,这时作为数据源的视图必须是已 经建立好的。
列中的数据是唯一的,就可以在同一个表上创 建一个唯一的聚集索引和多个唯一的非聚集索 引。
-
11
示例
例1.为Student表的Sno列创建唯一聚集索引。 CREATE UNIQUE CLUSTERED INDEX Sno_ind ON Student (Sno)
例2.为SC表创建Cno列(升序)Grade(降序) Sno (升序)的非聚集复合索引。 CREATE INDEX CGS_ind ON SC ( Cno, Grade DESC, Sno )
第6章使用索引和视图(2)精品PPT课件

ON SC(Sno,Cno)
6.3.2 修改索引
使用企业管理器,打开表设计器,在“索引/键” 卡片中修改索引的定义; 修改索引的过程是首先删除表中准备修改的索 引,然后使用新的索引定义重新创建该索引; 创建和修改聚集索引时,SQL Server要对表的 行进行重组,当表中存储了大量数据时,会产生 很大的开销,可能要花很长时间。
6.4.1 使用聚集索引
用于以下情况: 包含大量非重复值的列; 查询使用下列运算符返回一个范围值的列: BETWEEN、>、>=、<、<=; 返回大型结果集的查询; 经常被使用连接或GROUP BY子句查询访问的 列。
注意:聚集索引不适用于频繁更新的列。
6.4.2 使用非聚集索引
非聚集索引用于以下情况。 包含大量非重复值的列,如姓名列。 不返回大型结果集的查询。 搜索条件(WHERE子句)要求精确匹配的查询 中经常使用的列。 经常需要连接和分组查询语句。
CREAT [UNIQUE][CLUSTERED][NONCLUSTERable|view} (column[ASC|DESC][,…n]) [WITH FILLFACTOR=fillfactor, DROP_EXSITING
]
2、使用T-SQL创建索引
6.5 维 护 索 引
6.5.1 维护统计信息 6.5.2 数据碎片 6.5.3 重建和整理索引
1.删除并重新创建聚集索引 2.DBCC INDEXDEFRAG命令 3.DROP_EXISTING子句
6.6 视图
视图是从一个或几个基表(或视图)导出的表。 视图是虚表; 数据库中只存放视图定义,而不存放视图 对应的数据; 视图一经定义,就可以和基本表一样被查 询、删除。
1.使用企业管理器创建索引 2.使用T-SQL创建索引
6.3.2 修改索引
使用企业管理器,打开表设计器,在“索引/键” 卡片中修改索引的定义; 修改索引的过程是首先删除表中准备修改的索 引,然后使用新的索引定义重新创建该索引; 创建和修改聚集索引时,SQL Server要对表的 行进行重组,当表中存储了大量数据时,会产生 很大的开销,可能要花很长时间。
6.4.1 使用聚集索引
用于以下情况: 包含大量非重复值的列; 查询使用下列运算符返回一个范围值的列: BETWEEN、>、>=、<、<=; 返回大型结果集的查询; 经常被使用连接或GROUP BY子句查询访问的 列。
注意:聚集索引不适用于频繁更新的列。
6.4.2 使用非聚集索引
非聚集索引用于以下情况。 包含大量非重复值的列,如姓名列。 不返回大型结果集的查询。 搜索条件(WHERE子句)要求精确匹配的查询 中经常使用的列。 经常需要连接和分组查询语句。
CREAT [UNIQUE][CLUSTERED][NONCLUSTERable|view} (column[ASC|DESC][,…n]) [WITH FILLFACTOR=fillfactor, DROP_EXSITING
]
2、使用T-SQL创建索引
6.5 维 护 索 引
6.5.1 维护统计信息 6.5.2 数据碎片 6.5.3 重建和整理索引
1.删除并重新创建聚集索引 2.DBCC INDEXDEFRAG命令 3.DROP_EXISTING子句
6.6 视图
视图是从一个或几个基表(或视图)导出的表。 视图是虚表; 数据库中只存放视图定义,而不存放视图 对应的数据; 视图一经定义,就可以和基本表一样被查 询、删除。
1.使用企业管理器创建索引 2.使用T-SQL创建索引
G-索引和视图PPT教学课件

第七章 索引和视图
➢索引是对数据库表中一个或多个列的值 进行排序的结构。 ➢索引提供指针以指向存储在表中指定列 的数据值,然后根据指定的排序次序排 列这些指针 。 ➢SQL的索引是平衡树(B树),每页至少包 含2行。
2020/12/09
1
索引优点缺点
优点
– 加快访问速度 – 加强行的唯一性
缺点
2. 非聚簇索引:在逻辑和物理上独立于表,表数据不存储 在索引的叶节点中。对于指向聚集索引的索引,叶节点中 包含聚集键;无聚集索引时,叶节点中包含一个直接指向 表数据的rowid。
两种索引对比:一个表中只能有一个聚簇索引,表示记录存 储的物理顺序;一个表中可以有多个(249个)非聚簇索 引,表示记录的逻辑顺序;非聚簇索引额外占用内存和硬 盘空间;按聚簇索引存取数据比按非聚簇索引快。非聚簇 索引可定义为唯一的,也可定义为非唯一的。
– 带索引的表在数据库中需要更多的存储空间。 – 操纵数据的命令需要更长的处理时间,因为
它们需要对索引进行更新。
2020/12/09
2
索引的类型-1
SQL Server 的索引包括:聚簇索引、非聚簇 索引、包含性列索引、索引视图、全文索 引和 XML索引。
1. 聚簇索引:保证表中的数据的物理存储顺序和排 列顺序相同。
➢ 精确或不精确的确定性计算列都可以是包含性列。 ➢ 与键列一样,只要允许将计算列数据类型作为非键索
引列,从 image、ntext 和 text 数据类型派生的计算列 就可以作为非键(包含性)列。 ➢ 不能同时在 INCLUDE 列表和键列列表中指定列名。 ➢ INCLUDE 列表中的列名不能重复。
2020/12/09
6
索引的类型-5
• 列大小准则
➢索引是对数据库表中一个或多个列的值 进行排序的结构。 ➢索引提供指针以指向存储在表中指定列 的数据值,然后根据指定的排序次序排 列这些指针 。 ➢SQL的索引是平衡树(B树),每页至少包 含2行。
2020/12/09
1
索引优点缺点
优点
– 加快访问速度 – 加强行的唯一性
缺点
2. 非聚簇索引:在逻辑和物理上独立于表,表数据不存储 在索引的叶节点中。对于指向聚集索引的索引,叶节点中 包含聚集键;无聚集索引时,叶节点中包含一个直接指向 表数据的rowid。
两种索引对比:一个表中只能有一个聚簇索引,表示记录存 储的物理顺序;一个表中可以有多个(249个)非聚簇索 引,表示记录的逻辑顺序;非聚簇索引额外占用内存和硬 盘空间;按聚簇索引存取数据比按非聚簇索引快。非聚簇 索引可定义为唯一的,也可定义为非唯一的。
– 带索引的表在数据库中需要更多的存储空间。 – 操纵数据的命令需要更长的处理时间,因为
它们需要对索引进行更新。
2020/12/09
2
索引的类型-1
SQL Server 的索引包括:聚簇索引、非聚簇 索引、包含性列索引、索引视图、全文索 引和 XML索引。
1. 聚簇索引:保证表中的数据的物理存储顺序和排 列顺序相同。
➢ 精确或不精确的确定性计算列都可以是包含性列。 ➢ 与键列一样,只要允许将计算列数据类型作为非键索
引列,从 image、ntext 和 text 数据类型派生的计算列 就可以作为非键(包含性)列。 ➢ 不能同时在 INCLUDE 列表和键列列表中指定列名。 ➢ INCLUDE 列表中的列名不能重复。
2020/12/09
6
索引的类型-5
• 列大小准则
数据库第7章 视图和索引简明教程PPT课件

7.1 索引
7.1.2 索引类型
3.聚集索引和非聚集索引 所谓聚集索引,是所有记录都按顺序聚集在索引结构的叶结点上的 索引。当查询一个数据时,从树的根结点到树的叶结点上后,可以直接 得到这条记录,从而减少I/O操作。聚集索引的一个重要特点是,记录 都是依照叶结点的顺序排列,也就是说使用聚集索引可以改变记录的物 理存放顺序。
一般有以下一些列不能考虑建立索引:
(1)在查询中很少使用和参考的列; (2)只有很少值的列; (3)小表(行数很少的表)一般没有必要创建索引; (4)定义为TEXT、IMAGE和BIT数据类型的列; (5)当UPDATE的性能比SELECT的性能更重要时不应建立索引。
7.2 创建索引
7.2.2 使用图形工具创建索引
(1)启动SSMS,展开“对象资源管理器”中数据库“Student”|“表” | “StudentInfo”。右键单击 “索引”项,弹出快捷菜单。 (2)选择“新建索引”命令,弹出如下图的“新建索引”对话框,在“索 引名称”项中输入索引名称“index_student_id”在“索引类型”的下拉列表中 选择“非聚集”,并启用“唯一”复选项,单击“添加”按钮,弹出 “从 “dbo.StudentInfo”中选择列”对话框。
7.1 索引
7.1.2 索引类型
1.简单索引和复杂索引很高的效率。一般来说,简单索引较适合于重复性不高的属性。 复杂索引是由两个以上属性形成的索引,也可以称为组合索引。在 查询过程中常常需要查找一些容易重复的属性的组合,如表中的印数和 字数。复杂索引常常用在这种信息的查找上面。
7.1 索引
7.1.2 索引类型
2.唯一索引和非唯一索引 唯一索引是指所引用的属性值能唯一地标识一行,即在此属性列中, 不存在两个相同的值。一个特殊的情况是,如果书号在这个数据表中本 来就是主键,那么这个索引可以叫做主键索引,显然主键就是一个唯一 索引。 在多列唯一索引的情况下,该索引可以确保索引列中每个值组合都 是唯一的,即构成了复杂唯一索引。非唯一索引与唯一索引相对,允许 出现重复值。
第9章视图与索引精品PPT课件

FROM book1
视图中的数据行和列都来自于基本表,是在 视图被引用时动态生成的
视图由视图名和视图定义两部分组成 可以在视图的基础上再定义视图。
9.1.2 视图的作用
使用视图主要有以下几个方面的作用: (P132-133页) (1)为用户集中数据,简化用户的数据查询和处理 (2)简化用户权限的管理,也增加了安全性 (3)屏蔽数据库的复杂性 (4)可重新组织数据以便输出到其他应用程序中
第9章 视图与索引
教学提示:在对数据库进行操作时,用 户总是希望能够快速并准确得到所要求 的数据,而适当使用视图和索引可以提 高数据存取的性能及操作速度,加快查 询数据的效率。
教学目标:本章将详细介绍视图和索引 的概念,以及创建和管理索引和视图的 方法。
9.1 视图的基础知识
1.什么是视图? 2.视图的作用、优点?
9.1.3 视图的类型 SQL Server2008中,视图可以分为标准视图、索引视图和 分区视图。
1. 标准视图(本阶段主要学习使用)
标准视图组合了一个或多个表中的数据,可以获得使用视 图的大多数好处,可以实现对数据库的查询、修改和删除等基 本操作。
2. 索引视图
索引视图是被具体化了的视图,它已经过计算并存储。可 以为视图创建索引,即对视图创建一个唯一的聚集索引。索引 视图可以显著提高某些类型查询的性能。索引视图尤其适于聚 合许多行的查询。但不太适合于经常更新的基本数据集。
GO
CREATE VIEW v_book2
AS SELECT 书名,定价
FROM book2
【例】 使用T-SQL语句创建视图v_bookbycbs,使其能 显示各出版社已出版书的本数(本例学习视图应用——基 本表的统计汇总)
索引与视图模板.ppt

2019-8-28
谢谢观赏
14 14
8.1 使用索引
默认情况下,创建的唯一聚集索引可以强制PRIMARY KEY约束,除非表中已存在聚集索引或指定了唯一的非聚集 索引。默认情况下,创建的唯一非聚集索引可以强制 UNIQUE约束,除非已明确指定唯一的聚集索引且表中不存 在聚集索引。
使用CREATE INDEX语句或SQL Server Management Studio对象资源管理器中的“新建索引”对话框创建独立于 约束的索引 。
如果在键列中存在重复值,将无法创建唯一索引或约束
2019-8-28
谢谢观赏
20 20
8.1 使用索引
5. 使用Transact-SQL语句创建索引
使用CREATE INDEX语句可以创建索引,语法格式如下 CREATE [ UNIQUE ] [ CLUSTERED | NONCLUSTERED ] INDEX index_name
若要创建索引视图,需要对一个或多个视图列定义唯一 聚集索引。视图将具体化,并且结果集存储在该索引的页级 别中,其存储方式与表数据存储在聚集索引中的方式相同 。
2019-8-28
谢谢观赏
18 18
8.1 使用索引
3. 创建非聚集索引
通常,创建非聚集索引是为了提高聚集索引未包含的常 用查询的性能。
可以通过下列方法实现非聚集索引 : PRIMARY KEY和UNIQUE约束 独立于约束的索引:默认情况下,如果未指定聚集,将 创建非聚集索引 。 索引视图的非聚集索引:对视图创建唯一的聚集索引后, 便可以创建非聚集索引 。
2019-8-28
谢谢观赏
10 10
8.1 使用索引
(3) 列准则 对于聚集索引,应保持较短的索引键长度。另外,对唯 一列或非空列创建聚集索引可以使聚集索引效率高 . 不能将ntext、text、image、varchar(max)、 nvarchar(max)和varbinary(max)数据类型的列指定为索引键 列 ,不过,varchar(max)、nvarchar(max)、varbinary(max) 和xml数据类型的列可以作为非键索引列参与非聚集索引。 xml数据类型的列只能在XML索引中用作键列 。
第7章数据库索引和视图精品PPT课件

下列情况不适于建立聚集索引
频繁更改的列。 字节长的列。因为聚集索引的
索引项的值将被所有非聚集索 引作为查找关键字使用,并被 存储在每个非聚集索引的B树的 叶级索引项中。
2020/10/12
17
非聚集索引
非聚集索引与图书后边的术语表类似。 数据存储在一个地方,术语表存储在另 一个地方。而且数据并不按术语表的顺 序存放,但术语表中的每个词在书中都 有确切的位置。
如此上推,直到生成顶层的根节点的索引 页。
2020/10/12
9
建有聚集索引的表的存储结构示意图
eno E01 E02 E03 E04 E05 E06 E07 E08 E09 E10 E11 E12
2020/10/12
数据示例
ename AB AA BB BC CB AS BB AD BD BA CC CA
例4 删除Student表的Sname_ind索 引 DROP INDEX Sname_ind
2020/10/12
28
7.2 视图
7.2.1 概念概念 7.2.2 定义视图 7.2.3 通过视图查询数据 7.2.4 修改和删除视图 7.2.5 视图的作用
2020/10/12
29
7.2.1 基本概念
第7章 索引和视图
7.1 7.2 视图 7.3 物化视图
2020/10/12
1
7.1 索引
7.1.1 索引基本概念 7.1.2 索引的存储结构及分类 7.1.3 创建和删除索引
2020/10/12
2
7.1 索引基本概念
索引与书籍中的目录类似。
索引使对数据的查找不需要对整个表 进行扫描,就可以在其中找到所需数 据。
数 数 数 E03 BB IS
《索引与视图》PPT课件

12
考 一般来说,如下情况的列考虑创建索引:
虑
● 主键。一般而言,存取表的最常用的方法
创
是通过主键来进行。因此,我们应该在主键上建 立索引。
建
索
● 连接中频繁使用的列(外键)。这是因为用 于连接的列若按顺序存放,系统可以很快执行连
引 接。
的
● 在某一范围内频繁搜索的列和按排序顺序 频繁检索的列。
列
创建唯一索引 创建聚集索引 创建非聚集索引 创建排序方式,默认为升序(ASC)
创建索引
19
示例
建立关于information表的s_no列的聚集索引
CREATE CLUSTERED INDEX s_no_id
ON information(s_no)
建立关于course表的c_no列的惟一非聚集索引
第7章
索引与视图
索引与视图
第1讲 索引
索引
索引概述 创建索引 查看和删除索引
视图
学
视图概述
习
创建、修改、查看、删除、使用视图
要
点
3
索 引
索引概述
索引是一个单独的、物理的数据库结构
该结构中包括表中的一列或若干列的值以及相应的指 向表中物理标识这些值的数据页的逻辑指针的集合
索引依赖于数据库的表,作为表的一个组成部分
使用T-SQL创建索引
21
查看和删除索引 使用企业管理器 使用T-SQL
索 引
学习要点
22
查看索引
基本语句格式: sp_helpindex [@objname =] 'name' 返回所有索引信息
查看information 表的索引 sp_helpindex information 返回结果
考 一般来说,如下情况的列考虑创建索引:
虑
● 主键。一般而言,存取表的最常用的方法
创
是通过主键来进行。因此,我们应该在主键上建 立索引。
建
索
● 连接中频繁使用的列(外键)。这是因为用 于连接的列若按顺序存放,系统可以很快执行连
引 接。
的
● 在某一范围内频繁搜索的列和按排序顺序 频繁检索的列。
列
创建唯一索引 创建聚集索引 创建非聚集索引 创建排序方式,默认为升序(ASC)
创建索引
19
示例
建立关于information表的s_no列的聚集索引
CREATE CLUSTERED INDEX s_no_id
ON information(s_no)
建立关于course表的c_no列的惟一非聚集索引
第7章
索引与视图
索引与视图
第1讲 索引
索引
索引概述 创建索引 查看和删除索引
视图
学
视图概述
习
创建、修改、查看、删除、使用视图
要
点
3
索 引
索引概述
索引是一个单独的、物理的数据库结构
该结构中包括表中的一列或若干列的值以及相应的指 向表中物理标识这些值的数据页的逻辑指针的集合
索引依赖于数据库的表,作为表的一个组成部分
使用T-SQL创建索引
21
查看和删除索引 使用企业管理器 使用T-SQL
索 引
学习要点
22
查看索引
基本语句格式: sp_helpindex [@objname =] 'name' 返回所有索引信息
查看information 表的索引 sp_helpindex information 返回结果
视图和索引操作课件讲义(ppt 47页)

建议课时:4课时
2020/1/10 Or acle 数 据库 管理 与 应用 实例 教 程
6.1 视图概述
视图定义
视图(View)是从一个或多个表(其他视图)中导出的表,其结构和 数据是建立在对表的查询基础之上的。所以视图不是真实存在的基础表, 而是一张虚表。视图所对应的数据并不实际地以视图结构存储在数据库 中,而是存储在视图所引用的表中。 视图一经定义便存储在数据库中,与其相对应的数据并没有像表一样 在数据库中另外存储一份,通过视图看到的数据只是存放在基表中的数 据。对视图的操作与对表的操作一样,可以对其进行查询、修改(有一 定的限制)和删除。 当对视图中的数据进行修改时,相应的基表的数据也要发生变化,同 时,如果基表的数据发生变化,则这种变化也可以自动地反映到视图中。
品价格(g_Price)、商品折扣(g_Discount)和商品数
教
量(g_Number)信息,可以创建一个“热点”商品的视
师
图。
演
示
CREATE OR REPLACE VIEW SCOTT.vw_HotGoods
讲
AS
解
SELECT g_ID AS 商品号, g_Name AS 商品名称, t_ID
FROM SCOTT.Goods
JOIN Types
ON Goods.t_ID=Types.t_ID
WITH CHECK OPTION
2020/1/10 Or acle 数 据库 管理 与 应用 实例 教 程
6.2.2 课堂案例2——使用PL/SQL管理视图
案例完成步骤 (5)创建复杂视图。
复杂视图是指包含函数、表达式或分添组数加据标的视图,主要目 题文字
的是为了简化查询。
2020/1/10 Or acle 数 据库 管理 与 应用 实例 教 程
6.1 视图概述
视图定义
视图(View)是从一个或多个表(其他视图)中导出的表,其结构和 数据是建立在对表的查询基础之上的。所以视图不是真实存在的基础表, 而是一张虚表。视图所对应的数据并不实际地以视图结构存储在数据库 中,而是存储在视图所引用的表中。 视图一经定义便存储在数据库中,与其相对应的数据并没有像表一样 在数据库中另外存储一份,通过视图看到的数据只是存放在基表中的数 据。对视图的操作与对表的操作一样,可以对其进行查询、修改(有一 定的限制)和删除。 当对视图中的数据进行修改时,相应的基表的数据也要发生变化,同 时,如果基表的数据发生变化,则这种变化也可以自动地反映到视图中。
品价格(g_Price)、商品折扣(g_Discount)和商品数
教
量(g_Number)信息,可以创建一个“热点”商品的视
师
图。
演
示
CREATE OR REPLACE VIEW SCOTT.vw_HotGoods
讲
AS
解
SELECT g_ID AS 商品号, g_Name AS 商品名称, t_ID
FROM SCOTT.Goods
JOIN Types
ON Goods.t_ID=Types.t_ID
WITH CHECK OPTION
2020/1/10 Or acle 数 据库 管理 与 应用 实例 教 程
6.2.2 课堂案例2——使用PL/SQL管理视图
案例完成步骤 (5)创建复杂视图。
复杂视图是指包含函数、表达式或分添组数加据标的视图,主要目 题文字
的是为了简化查询。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
索引的分类
SQL Server 中的索引分为3类,分别是: 聚集索引 非聚集索引 唯一索引
聚集索引
聚集索引会对表和视图进行物理排序,所以这种索 引对查询非常有效,在表和视图中只能有一个聚集索引。 当建立主键约束时,如果表中没有聚集索引,SQL Server 会用主键列作为聚集索引键。也可以手动 在表的任何列或列的组合上建立索引,但在实际应用 中,一般为定义成主键约束的列建立聚集索引。
③关键字的大小写不影响结 果
④只有表的所有者才能执行 CREATE INDEX语句 ⑤更多请参考本书第页
3、管理索引
管理索引的操作包括: 显示索引信息 重命名索引 删除索引 其他
显示索引 在索引创建完成后,可以查看索引的相关信息,包 括查看索引的名称、类型、索引键列等。查看索引信息 有两种方法:一种是用“对象资源管理器”进行显示; 另
使用T-SQL语句显示索引 使用T-SQL语句显示相关索引信息,实际是调用 了系统自定义的存储过程sp_helpindex(存储过程的 相关知识请参看本书第9章的内容)。
【例7.2】使用T-SQL语句显示CJGL数据库中Student表 的索引信息。 在查询窗口中使用的T-SQL语句如下: USE CJGL GO EXEC sp_helpindex Student GO
CREATE [UNIQUE][CLUSTERED|NONCLUSTERED] INDEX index_name ON <object> (column[ASC|DESC][,...n]) [INCLUDE(column_name[,...n])] [WITH(<relational_index_option>[,..#39;table.old_index','new_index'
参数说明: table.old_index:当前的索引名称。 new_index:新的索引名称。
【例7.3】用sp_rename存储过程重命名CJGL数据库中的 Student表下的IX_Student索引为IX_new_Student。 在查询窗口中输出以下T-SQL命令:
USE CJGL GO EXEC sp_rename‘student.IX_Student’,’IX_new_Student’ GO
返回
删除索引 删除索引同样有两种方法:利用“对象资源管理 器”和T-SQL命令。 使用“对象资源管理器”重命名索引 右键单击要删除的索引,在弹出的快捷菜单中执 行“删除”命令,此时会弹出 “删除对象”窗口, 单击窗口中的“确定”按钮即可删除此索引。
【例7.1】使用T-SQL语句在CJGL数据库中的Student表 上创建名为IX_Student的唯一、聚集索引,该索引基于 表中的“学号”列。 注意: T-SQL脚本语句如下:
USE CJGL GO CREATE UNIQUE CLUSTERED INDEX IX_Student ON Student(StuNo) GO ①UNIQUE和CLUSTERED 之间不能用“,”号 ②“学号”列中不能有重复 值
属性和参数说明:
UNIQUE:建立唯一索引。 CLUSTERED:建立聚集索引。 NONCLUSTERED:建立非聚集索引。 index_name:索引名称,索引名称在表或视图中必须唯一,但 在数据库中不必唯一。 object:表名或视图名。 column:索引所基于的一列或多列。 ASC|DESC:确定特定索引列的升序或降序排序方向。默认值 为ASC(升序)。 INCLUDE(column_name[,...n]):指定要添加到非聚集索引的 叶级别的非键列。非聚集索引可以唯一,也可以不 唯一。 relational_index_option:索引属性。如DROP INDEX ix_Student表示先删除已经存在的索引,因为索引 名称不能重复,否则会出错。
一种是用T-SQL的相关语句进行显示。
使用“对象资源管理器”显示索引 在“对象资源管理器”中找到相应的表,展开 “索引” 前面的“+”号后,会列出已经存在的索引列表,可以 用 鼠标右键单击其中一个索引名称,在打开的快捷菜单 中选择“属性”,即可弹出相应的“索引”属性窗口, 进 行查看相关索引的信息。 如下页图所示:
返回
2、建立索引
创建表或视图的索引的方法有两种:使用对象资源 管理器和T-SQL语句。 使用“对象资源管理器”创建索引 具体的方法请参考本书第7章
使用“对象资源管理器”创建索 引
使用“对象资源管理器”创建索 引
使用“对象资源管理器”创建索 引
使用T-SQL语句创建索引 T-SQL语句创建索引的基本语法如下:
第7章 索引和视图
本章学习目标
掌握索引的创建、管理、维护和删除等操作 掌握视图的创建、修改、使用和删除等操作 学会使用视图查询、修改、更新和删除数据
7.1 索引
1、索引基础知识
索引的概念和作用
索引是对数据库表中一个或多个列(例如Student 表的“学号”列)的值进行排序的结构。 索引提供指针以指向存储在表中指定列的数据 值,然后根据指定的排序次序排列这些指针。
执行结果如图所示
返回
重命名索引 重命名索引和显示索引信息一样,同样有两种方法:
利用“对象资源管理器”和T-SQL命令。
使用“对象资源管理器”重命名索引 此种方法重命名索引比较简单,和重命名表名的 操作一样。
使用T-SQL语句重命名索引 利用T-SQL命令重命名索引,同样也是调用了系统 自定义的存储过程sp_rename。其基本语法如下:
返回
非聚集索引 非聚集索引不会对表和视图进行物理排序。如果表 或视图中不存储聚集索引,则表或视图是未排序的。在 表和视图中最多可以建立250个非聚集索引,或者249个
非聚集索引和一个聚集索引。
返回
唯一索引 唯一索引确保索引键不包含重复的值,因此,表或 视图中的每一行在某种程度上是唯一的。例如,如果在 表中的“姓名”字段上创建了唯一索引,则以后输入的 姓 名将不能同名。