广告
返回顶部
首页 > 资讯 > 数据库 >SQLSERVER中怎么创建索引
  • 770
分享到

SQLSERVER中怎么创建索引

2024-04-02 19:04:59 770人浏览 八月长安
摘要

本篇文章为大家展示了sqlSERVER中怎么创建索引,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。什么是索引 拿汉语字典的目录页(索引)打比方:正如汉语字

本篇文章为大家展示了sqlSERVER中怎么创建索引,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

什么是索引 

拿汉语字典的目录页(索引)打比方:正如汉语字典中的汉字按页存放一样,SQL Server中的数据记录也是按页存放的,每页容量一般为4K。为了加快查找的速度,汉语字(词)典一般都有按拼音、笔画、偏旁部首等排序的目录(索引),我们可以选择按拼音或笔画查找方式,快速查找到需要的字(词)。 同理,SQL Server允许用户在表中创建索引,指定按某列预先排序,从而大大提高查询速度。 

• SQL Server中的数据也是按页(4KB)存放 

• 索引:是SQL Server编排数据的内部方法。它为SQL Server提供一种方法来编排查询数据。

 • 索引页:数据库中存储索引的数据页;索引页类似于汉语字(词)典中按拼音或笔画排序的目录页。

 • 索引的作用:通过使用索引,可以大大提高数据库的检索速度,改善数据库性能。 

索引类型 

• 唯一索引:唯一索引不允许两行具有相同的索引值

 • 主键索引:为表定义一个主键将自动创建主键索引,主键索引是唯一索引的特殊类型。主键索引要求主键中的每个值是唯一的,并且不能为空 

• 聚集索引(Clustered):表中各行的物理顺序与键值的逻辑(索引)顺序相同,每个表只能有一个

 • 非聚集索引(Non-clustered):非聚集索引指定表的逻辑顺序。数据存储在一个位置,索引存储在另一个位置,索引中包含指向数据存储位置的指针。可以有多个,小于249个 索引类型:再次用汉语字典打比方,希望大家能够明白聚集索引和非聚集索引这两个概念。 

唯一索引: 唯一索引不允许两行具有相同的索引值。 如果现有数据中存在重复的键值,则大多数数据库都不允许将新创建的唯一索引与表一起保存。当新数据将使表中的键值重复时,数据库也拒绝接受此数据。例如,如果在stuInfo表中的学员员身份证号(stuID)列上创建了唯一索引,则所有学员的身份证号不能重复。 提示:创建了唯一约束,将自动创建唯一索引。尽管唯一索引有助于找到信息,但为了获得最佳性能,建议使用主键约束或唯一约束。 

主键索引: 在数据库关系图中为表定义一个主键将自动创建主键索引,主键索引是唯一索引的特殊类型。主键索引要求主键中的每个值是唯一的。当在查询中使用主键索引时,它还允许快速访问数据。 

聚集索引(clustered index) 在聚集索引中,表中各行的物理顺序与键值的逻辑(索引)顺序相同。表只能包含一个聚集索引。例如:汉语字(词)典默认按拼音排序编排字典中的每页页码。拼音字母a,b,c,d……x,y,z就是索引的逻辑顺序,而页码1,2,3……就是物理顺序。默认按拼音排序的字典,其索引顺序和逻辑顺序是一致的。即拼音顺序较后的字(词)对应的页码也较大。如拼音“ha”对应的字(词)页码就比拼音“ba”对应的字(词)页码靠后。

  非聚集索引(Non-clustered) 如果不是聚集索引,表中各行的物理顺序与键值的逻辑顺序不匹配。聚集索引比非聚集索引(nonclustered index)有更快的数据访问速度。例如,按笔画排序的索引就是非聚集索引,“1”画的字(词)对应的页码可能比“3”画的字(词)对应的页码大(靠后)。 提示:SQL Server中,一个表只能创建1个聚集索引,多个非聚集索引。设置某列为主键,该列就默认为聚集索引 

如何创建索引 使用T-SQL语句创建索引的语法:复制代码 代码如下: CREATE [UNIQUE] [CLUSTERED|NONCLUSTERED] INDEX index_name ON table_name (column_name…) [WITH FILLFACTOR=x]

q UNIQUE表示唯一索引,可选 q CLUSTERED、NONCLUSTERED表示聚集索引还是非聚集索引,可选 q FILLFACTOR表示填充因子,指定一个0到100之间的值,该值指示索引页填满的空间所占的百分比 

在stuMarks表的writtenExam列创建索引: 复制代码 代码如下: USE stuDB Go IF EXISTS (SELECT name FROM sysindexes WHERE name = 'IX_writtenExam') DROP INDEX stuMarks.IX_writtenExam CREATE NONCLUSTERED INDEX IX_writtenExam ON stuMarks(writtenExam) WITH FILLFACTOR= 30 GO SELECT * FROM stuMarks (INDEX=IX_writtenExam) WHERE writtenExam BETWEEN 60 AND 90

虽然我们可以指定SQL Server按哪个索引进行数据查询,但一般不需要我们人工指定。SQL Server将会根据我们创建的索引,自动优化查询。 

索引的优缺点 • 优点 – 加快访问速度 – 加强行的唯一性 • 缺点 – 带索引的表在数据库中需要更多的存储空间 – 操纵数据的命令需要更长的处理时间,因为它们需要对索引进行更新 

创建索引的指导原则 • 请按照下列标准选择建立索引的列。 – 该列用于频繁搜索 – 该列用于对数据进行排序 • 请不要使用下面的列创建索引: – 列中仅包含几个不同的值。 – 表中仅包含几行。为小型表创建索引可能不太划算,因为SQL Server在索引中搜索数据所花的时间比在表中逐行搜索所花的时间更长

上述内容就是SQLSERVER中怎么创建索引,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注编程网数据库频道。

您可能感兴趣的文档:

--结束END--

本文标题: SQLSERVER中怎么创建索引

本文链接: https://www.lsjlt.com/news/57237.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • SQLSERVER中怎么创建索引
    本篇文章为大家展示了SQLSERVER中怎么创建索引,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。什么是索引 拿汉语字典的目录页(索引)打比方:正如汉语字...
    99+
    2022-10-18
  • SQLServer创建索引的5种方法小结
    目录前期准备:创建聚集索引方法 1、方法 2、创建复合索引创建覆盖索引创建唯一索引筛选索引总结:前期准备: create table Employee ( ID int not null prim...
    99+
    2023-04-26
    SQLServer创建索引 SQLServer索引创建
  • elasticsearch怎么创建索引
    要创建一个索引,可以使用Elasticsearch提供的RESTful API或者Elasticsearch客户端库。使用RESTf...
    99+
    2023-10-08
    elasticsearch
  • Mariadb索引怎么创建
    这篇文章主要讲解了“Mariadb索引怎么创建”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Mariadb索引怎么创建”吧!索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成...
    99+
    2023-06-27
  • 怎么在MongoDB中创建索引
    这期内容当中小编将会给大家带来有关怎么在MongoDB中创建索引,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。MongoDB 创建索引的语法1.为普通字段添加索引,并且为...
    99+
    2022-10-18
  • 怎么在postgresql中创建索引
    在postgresql中创建索引的方法:1.启动postgresql服务;2.登录postgresql数据库;3.使用数据库;4.在数据库新建表;5.使用CREATE INDEX命令创建索引;具体步骤如下:首先,在命令行中启动postgre...
    99+
    2022-10-03
  • sqlserver中怎么查询表索引
    sqlserver中怎么查询表索引,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。SELECT 索引名称=a.name,...
    99+
    2022-10-18
  • sqlserver索引重建和索引重组有什么区别
    这篇文章主要介绍“sqlserver索引重建和索引重组有什么区别”,在日常操作中,相信很多人在sqlserver索引重建和索引重组有什么区别问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望...
    99+
    2022-10-18
  • mysql数据库中怎么创建索引
    这篇文章主要介绍mysql数据库中怎么创建索引,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!案例:创建数据库index_test,按照下表的结构在index_test数据库中创建两个...
    99+
    2022-10-18
  • MySQL中怎么创建和删除索引
    MySQL中怎么创建和删除索引,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1.索引作用   在索引列上,除了上面提到...
    99+
    2022-10-18
  • oracle怎么创建组合索引
    要在Oracle中创建组合索引,您需要使用CREATE INDEX语句,并指定要创建的索引的名称、表名称以及要包含在索引中的列。 以...
    99+
    2023-10-27
    oracle
  • pgsql怎么创建联合索引
    在 PostgreSQL 中,可以使用 `CREATE INDEX` 语句来创建联合索引。联合索引是指在多个列上创建的索引,可以同时...
    99+
    2023-10-27
    pgsql
  • kibana怎么创建索引模板
    要在Kibana中创建索引模板,您可以按照以下步骤操作:1. 打开Kibana控制台并登录到您的Kibana实例。2. 在左侧导航栏...
    99+
    2023-09-18
    kibana
  • mongodb怎么创建索引失败
    当创建索引失败时,有以下几个可能的原因:1. 重复的索引名称:如果尝试创建重复名称的索引,MongoDB会报错。确保使用唯一的索引名...
    99+
    2023-08-31
    mongodb
  • oracle怎么创建本地索引
    在Oracle中,可以使用CREATE INDEX语句来创建本地索引。以下是创建本地索引的基本语法:CREATE INDEX ind...
    99+
    2023-09-29
    oracle
  • oracle位图索引怎么创建
    要创建Oracle位图索引,可以使用以下语法: CREATE BITMAP INDEX index_name ON table_na...
    99+
    2023-10-25
    oracle
  • SQL索引怎么创建使用
    这篇文章主要讲解了“SQL索引怎么创建使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“SQL索引怎么创建使用”吧!索引的作用索引的作用就是加快查询速度,如果把使用了索引的查询看做是法拉利跑...
    99+
    2023-06-02
  • mysql怎么创建聚集索引
    在MySQL中,你可以使用`CREATE INDEX`语句来创建聚集索引。以下是创建聚集索引的一般语法:```sqlCREATE [...
    99+
    2023-08-29
    mysql
  • SQLSERVER中怎么忽略索引提示
    今天就跟大家聊聊有关SQLSERVER中怎么忽略索引提示,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。当我们想让某条查询语句利用某个索引的时候,我们...
    99+
    2022-10-18
  • 怎么在sqlserver中创建表
    本篇内容介绍了“怎么在sqlserver中创建表”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!方法如下:在sql语句中,临时表有两类,分别是...
    99+
    2023-06-30
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作