SQLServer 语句-创建索引【转】
语法:
CREATE [索引类型] INDEX 索引名称
ON 表名(列名)
WITH FILLFACTOR = 填充因子值0~100
GO
/*实例*/
USE 库名
GO
IF EXISTS (SELECT * FROM SYSINDEXES WHERE NAME='IX_TEST_TNAME')--检测是否已经存在IX_TEST_TNAME索引
DROP INDEX TEST.IX_TEST_TNAME--如果存在则删除
--创建索引
CREATE NONCLUSTERED INDEX IX_TEST_TNAME --创建一个非聚集索引
ON TEST(TNAME) --为TEST表的TNAME字段创建索引
WITH FILLFACTOR = 30 --填充因子为30%
GO
SELECT * FROM TEST(INDEX = IX_TEST_TNAME) WHERE TNAME = 'A' --指定按‘IX_TEST_TNAME’索引查询
总结:
1.什么是索引:数据库中的索引是某个表中一列或多列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。
2.分类:
唯一索引(UNIQUE):不允许两行具有相同的索引值(创建了唯一约束,系统将自动创建唯一索引)
主键索引:主键索引要求主键中的每个值是唯一的,(创建主键自动创建主键索引)
聚集索引(CLUSTERED):表中各行的物理顺序与键值的逻辑(索引)顺序相同,表中只能包含一个聚集索引,主键列默认为聚集索引
非聚集索引(NONCLUSTERED):表中各行的物理顺序与键值的逻辑(索引)顺序不匹配,表中可以有249个非聚集索引
3.创建索引的标准:用语频繁搜索的列;用语对数据进行排序的列
注意:如果表中仅有几行,或列中只包含几个不同的值,不推荐创建索引,因为SQL Server 在小型表中用索引搜索数据所花的时间比逐行搜索更长。
http://msdn.microsoft.com/zh-cn/library/ms345331(SQL.90).aspx
新增: 2006 年 4 月 14 日
在指定的表上创建索引。可以在表中输入数据之前创建索引。
语法
CREATE [UNIQUE] [NONCLUSTERED] INDEX index_name ON table_name (column_name [ASC|DESC][,…n]) |
参数| 术语 | 定义 | ||
|---|---|---|---|
|
UNIQUE |
在表上创建唯一索引。唯一索引是不允许其中任意两行具有相同索引值的索引。 SQL Server 2005 Compact Edition (SQL Server Compact Edition) 在创建索引后将检查是否存在重复的值(如果数据已存在),并在每次使用 INSERT 或 UPDATE 语句添加数据时执行该检查操作。必须先消除重复值,然后才可对列创建唯一索引。如果存在重复的键值,则将取消 CREATE INDEX 语句并返回错误。只能对定义为 NOT NULL 的列创建唯一索引。 如果存在唯一索引,则可能生成重复键值的 UPDATE 或 INSERT 语句将回滚,且 SQL Server Compact Edition 返回错误。即使 UPDATE 或 INSERT 语句更改许多行,但只要存在一个重复,上面这一点也将成立。 |
||
|
NONCLUSTERED |
创建指定表的逻辑排序的索引。使用非聚集索引,数据行的物理顺序将独立于其索引顺序。这是唯一支持的索引类型。(默认值为 NONCLUSTERED) |
||
|
index_name |
指定索引的名称。索引名称在表中必须是唯一的,但是在数据库中不必是唯一的。 |
||
|
table_name |
指定要对其创建索引的表的名称。 此表包含要建立索引的一个或多个列。 |
||
|
column name |
要应用索引的列。指定两个或两个以上的列的名称,以对指定列中的组合值创建组合索引。在表后面的括号中,按排序优先级顺序列出要包含在组合索引中的列。
|
||
|
ASC | DESC ] |
为特定的索引列确定升序 (ASC) 或降序 (DSC) 排序方向。默认值为 ASC。 |
||
|
n |
指示可以为任何特定索引指定多列的占位符。索引中可以包含的最大列数为 16。 |
||
|
STATISTICS_NORECOMPUTE |
指定是否重新计算分发统计信息。默认值为 OFF。
若要还原自动统计信息更新,请将 STATISTICS_NORECOMPUTE 设置为 OFF,或执行不带 NORECOMPUTE 子句的 UPDATE STATISTICS。
|
示例
以下示例对 MyCustomers 表创建了唯一索引:
CREATE TABLE MyCustomers (CustID int, CompanyName nvarchar(50)) |
SQLServer 语句-创建索引【转】的更多相关文章
- SQLServer 语句-创建索引
语法:CREATE [索引类型] INDEX 索引名称ON 表名(列名)WITH FILLFACTOR = 填充因子值0~100GO /*实例*/USE 库名GOIF EXISTS (SELECT * ...
- SQL语句-创建索引
语法:CREATE [索引类型] INDEX 索引名称ON 表名(列名)WITH FILLFACTOR = 填充因子值0~100 GO USE 库名GO IF EXISTS (SELECT * FRO ...
- SQLServer之创建索引视图
索引视图创建注意事项 对视图创建的第一个索引必须是唯一聚集索引. 创建唯一聚集索引后,可以创建更多非聚集索引. 为视图创建唯一聚集索引可以提高查询性能,因为视图在数据库中的存储方式与具有聚集索引的表的 ...
- mysql索引 ->创建索引、修改索引、删除索引的命令语句
查看表中已经存在 index:show index from table_name; 创建和删除索引索引的创建可以在CREATE TABLE语句中进行,也可以单独用CREATE INDEX或ALTER ...
- mysql——创建索引、修改索引、删除索引的命令语句
查看表中已经存在 index:show index from table_name; 创建和删除索引索引的创建可以在CREATE TABLE语句中进行,也可以单独用CREATE INDEX或ALTER ...
- SQLSERVER 创建索引实现代码
是SQL Server编排数据的内部方法.它为SQL Server提供一种方法来编排查询数据 什么是索引 拿汉语字典的目录页(索引)打比方:正如汉语字典中的汉字按页存放一样,SQL Server中的数 ...
- SQL Server创建索引(转)
什么是索引 拿汉语字典的目录页(索引)打比方:正如汉语字典中的汉字按页存放一样,SQL Server中的数据记录也是按页存放的,每页容量一般为4K .为了加快查找的速度,汉语字(词)典一般都有按拼音. ...
- mysql 创建索引和删除索引
索引的创建可以在CREATE TABLE语句中进行,也可以单独用CREATE INDEX或ALTER TABLE来给表增加索引.删除索引可以利用ALTER TABLE或DROP INDEX语句来实现. ...
- SQL Server创建索引
原文:SQL Server创建索引 什么是索引 拿汉语字典的目录页(索引)打比方:正如汉语字典中的汉字按页存放一样,SQL Server中的数据记录也是按页存放的,每页容量一般为4K .为了加快查找的 ...
随机推荐
- SQL Server 2012入门图解:建表、备份、还原
一.建立你的第一个数据库和表 例:建立一个用于描述一个学校学生情况的数据库.把它命名为School.并且要在School数据库下建立保存学生信息的表Student.在可视化界面下,我们通常这样操作 ...
- Ubuntu 15.04 无损扩展分区(目录)容量的方法 (无需格式化, 文件不丢失)
源 起 用了一段时间Ubuntu,碰到了UBuntu磁盘空间不足的问题, 最初我只给Ubuntu分配了30个G的空间, 昨天试用了一下VirtualBox安装了一个xp虚拟系统,用以解决Ubuntu下 ...
- 【转】K3Cloud 二次开发 单据转换系列
Entity, EntryEntity, SubEntryEntity 这三个对象具有继承关系:Entity 是实体基类,用于定义各种实体的公共属性:EntryEntity 是单据体实体类,从Enti ...
- Java类加载的时机_4种主动引用会触犯类加载+剩下的被动引用不会触发类的加载
转载自:http://chenzhou123520.iteye.com/blog/1597597 Java虚拟机规范没有强制性约束在什么时候开始类加载过程,但是对于初始化阶段,虚拟机规范则严格规定了有 ...
- Newtonsoft.Json 基本用法
Newtonsoft.Json 是.net 开源的一个json格式处理类库 官方网站:http://json.codeplex.com/ 在使用的项目引用Newtonsoft.Json库.平常使用的方 ...
- HTML特殊字符编码大全
HTML特殊字符编码大全:往网页中输入特殊字符,需在html代码中加入以&开头的字母组合或以&#开头的数字.下面就是以字母或数字表示的 特殊符号大全 ´ © © > > µ ...
- JS函数式编程【译】2.1 函数式编程语言
- 济南学习 Day 4 T2 am
LYK 与实验室(lab)Time Limit:5000ms Memory Limit:64MB题目描述LYK 在一幢大楼里,这幢大楼共有 n 层,LYK 初始时在第 a 层上.这幢大楼有一个秘密实验 ...
- android网络编程
android的网络编程分为2种:基于socket的,和基于http协议的. 基于socket的用法 服务器端: 先启动一个服务器端的socket ServerSocket svr = new ...
- OSX 上初步尝试 asp.net 5
去年微软最令开源狗界振奋的消息就是 ASP.NET 的开放与开源这一消息了. 根据微软的介绍,与我之前的一些总结,可以看到 ASP.NET 以及 .NET 平台会有下面几个变化: 代码使用 Apach ...
注意:
复制代码