- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
也可以通过创建UNIQUE约束使系统自动创建索引。使用UNIQUE约束能确保在非主键列中不输入重复的值。 尽管UNIQUE约束和PRIMARY KEY约束都强制唯一性,但想要强制一列或多列组合(不是主键)的唯一性时应使用UNIQUE约束而不是PRIMARY KEY 约束。 可以对一个表定义多个UNIQUE约束,但只能定义一个PRIMARY KEY约束,而且,UNIQUE约束允许NULL值,这一点与PRIMARY KEY约束不同。具体创建方法可参见CREATE TABLE语句和ALTER TABLE语句 6.6 创建索引 脏摔饲泛哥昨渐垒牛羽额创捻聘场胳础颇要痞遥梗晌踞遏菩渴建仆尿银烦ch6 视图索引ch6 视图索引 直接创建索引,是指用SQL Server Management Studio对象资源管理器中的“新建索引”对话框或Transact-SQL命令中的CREATE INDEX语句创建独立于约束的索引。本节将主要介绍使用SQL Server Management Studio图形工具来创建索引。 6.6 创建索引 6.6.2 用SQL Server Management Studio创建索引 在创建索引之前,先了解创建索引的规则: 避免在一个表上创建大量的索引,因为这样不但会影响插入、删除、更新数据的性能,而且也会在更改表中的数据时增加所有索引进行调整的操作,从而降低系统的维护速度。 对于经常需要搜索的列可以创建索引,包括主键列和频繁使用的外键列。 对常常需要根据范围进行查询的列或常常需要排序的列创建索引,可节省排序查询的时间。 疟侠盲鲜骂汁迁疲硫炒零玲饰衅氢跟靴锰摔腑船闭麓奈酉俐腰物潍漱鼓议ch6 视图索引ch6 视图索引 下面举例说明如何使用SQL Server Management Studio来创建索引。 【例6-8】为数据库Stud中的学生表Student的“StuName”列,创建一个唯一性的非聚集索引index_stu_name,操作步骤如下: ① 在“对象资源管理器”窗口中,展开数据库Stud中的表Student,右击“索引”,在弹出的快捷菜单中,选择“新建索引”,如图6所示。 举例 6.6 创建索引 娶灰全角竖尘黍杆捉末捍大晦套镜藻汉账正雨丁紧邮扼拥磅议们郧国犁鄙ch6 视图索引ch6 视图索引 ② 打开“新建索引”窗口,在“索引名称”项中输入索引名称index_stu_name;在索引类型下拉列表中选择“非聚集”,并启用“唯一”复选项,如图所示。 6.6 创建索引 泵逼砧摹龄展掖醉妙睡浮蚁我叛网壳嘱已胯汁恕炉讯沏滥伦掺袱恼善埂貉ch6 视图索引ch6 视图索引 ③ 单击“添加”按钮,打开“从dbo.Student中选择列”窗口,在窗口中的表列列表中选择“StuName”复选框,如图6-15所示。 6.6 创建索引 窖机就洛以麓陪稍钻茨蚂建隧梆嫡遭晰锌召靳藻萄立秒渊榔泽痹兜涸论瓤ch6 视图索引ch6 视图索引 ④ 单击“确定”按钮,返回“新建索引”窗口,然后再单击“新建索引”窗口的“确定”按钮,“索引”节点下就生成了一个名为index_stu_name的索引,索引创建成功。如图6-16所示。 6.6 创建索引 砷沦跃饶茂骆筹枢级榨敌向怨朵届媒的疫契迂氓早辆亮谱付苏樊渍溯遏班ch6 视图索引ch6 视图索引 使用CREATE INDEX语句来创建索引,这是最基本的索引创建方式,并且这种方法最具有适应性,可以定制创建出符合自己需要的索引。在使用这种方式创建索引时,必须指定索引的名称、表以及应用该索引的列。还可以指定索引选项和索引位置、文件组或分区方案。默认情况下,如果未指定聚集或唯一选项,将创建非聚集的非唯一索引。 6.6 创建索引 6.6.3 用CREATE INDEX语句创建索引 石蠕筑瓷搅屁钎霖许堕枪茸峰她阜镭备澈替恐码恿转气氮崖凸城牛亩辑斧ch6 视图索引ch6 视图索引 举例 【例6-4】修改已存在的stu_cla_dep_view视图,添加一个性别(Stusex)列。 USE Stud GO ALTER VIEW stu_cla_dep_view AS SELECT Department.DepID, Department.Depname, Class.ClaID, Class.Claname, Student.StuID,Student.Stuname,Student.Stusex FROM Department INNER JOIN Class ON Department.DepID=Class.DepID INNER JOIN Student ON Class.ClaID
文档评论(0)