目录

  • 第1单元    数据库系统导论
    • ● 任务1.1  数据库基本概念
    • ● 任务1.2  设计E—R 图
    • ● 任务1.3   将E-R图转换成关系模型
    • ● 任务1.4   练习与作业
    • ● 教与学参考资源
  • 第2单元   认识SQL SERVER数据库
    • ● 任务2.1 数据库应用场景
    • ● 任务2.3  SQL  Server 数据库安装
    • ● 任务2.4 SQL Server 的管理
    • ● 任务2.5  使用SSMS连接数据库
    • ● 教与学参考资源
  • 第3单元  创建和管理数据库
    • ● 任务3.1 创建数据库
    • ● 任务3.1(2)  命令创建数据库
    • ● 任务3.2 管理数据库
    • ● 任务3.2(2) 查看、收缩数据库
    • ● 教与学参考资源
  • 第4单元 创建和管理数据库表
    • ● 任务4.1 SQL Server常用数据类型
    • ● 任务4.2  创建数据表
    • ● 任务4.3  命令创建表
    • ● 任务4.4 实施完整性约束
    • ● 教与学参考资源
  • 第 5 单元   查询数据表
    • ● 任务5.1 单表数据查询
    • ● 任务5.2 多表数据查询
    • ● 任务5.3 嵌套查询
    • ● 任务5.4 合并查询结果
    • ● 教与学参考资源
  • 第6单元  管理表中数据
    • ● 任务6.1   添加数据
    • ● 任务6.2  修改数据
    • ● 任务6.3  删除数据
    • ● 习题与训练
    • ● 教与学参考资源
  • 第7单元  使用索引和视图
    • ● 任务7.1  使用索引
    • ● 使用T-SQL创建索引
    • ● 任务7.2  使用视图
    • ● 使用T-SQL语句创建视图
    • ● 教与学参考资源
  • 第8单元 Transact-SQL语言编程
    • ● 任务8.1   声明和使用变量
    • ● 任务8.2   流控语句
    • ● 任务8.3   常用系统函数
    • ● 任务8.4   创建自定义函数
    • ● 教与学参考资源
  • 第9单元  事务和锁
    • ● 任务   9.1     事务
    • ● 事务的基本操作
    • ● 任务9.2    锁
    • ● 死锁及避免方法(例)
    • ● 教与学参考资源
  • 第10单元  创建和管理存储过程
    • ● 任务10.1 存储过程及优点
    • ● 任务10.2 创建和执行存储过程
    • ● 任务10.3   存储过程参数和返回值
    • ● 任务10.4 修改、删除、 重新编译存储过程
    • ● 教与学参考资源
  • 第11单元 创建和管理触发器
    • ● 任务1 触发器的作用和分类
    • ● 任务2 触 发器的创建与执行
    • ● 任务3 创建级联触发器
    • ● 任务4 修改、删除触发器
  • 第12单元 创建和使用游标
    • ● 任务1  游标的作用及使用步骤
    • ● 任务2  创建基本游标
    • ● 任务3  使用变量保存游标数据
    • ● 任务4  使用循环环提取游标数据
  • 第13单元 SQL Server用户管理
    • ● 任务1数据库安全管理概述
    • ● 任务2SQL Server 安全机制
    • ● 任务3 账号、角色及权限管理
    • ● 任务4数据库完整性管理
    • ● 任务5 数据库的备份与还原
    • ● 任务6   数据的导入与导出
  • 第14单元  综合应用案例
    • ● 概述
    • ● 需求分析
    • ● 概述设计-逻辑设计- 物理设计
    • ● 编写数据库设计说明书
  • 学生做项目成果展示
    • ● 项目一  设计《我班同学数据库》
    • ● 项目二  设计《(Teaching)教学数据库》
    • ● 项目三  数据库应用系统设计开发项目
    • ● 项目四 《华夏-宿舍管理系统》设计开发
    • ● 项目五   综合实训大作业
    • ● 综合实训团队项目大作业
    • ● 学生完成项目摘录展示
  • 总复习与综合训练
    • ● 总复习
    • ● 综合训练一
    • ● 综合训练二
    • ● 综合训练三
    • ● 综合训练四
    • ● 综合训练五
    • ● 简答综合训练
  • 在线专题测验
    • ● 自检自测一
    • ● 自检自测二
  • 拓展   数据库管理工具平台  Navicat
    • ● 关于Navica
    • ● Navicat 的系统需求
    • ● Navicat 的用户界面
    • ● Navicat 创建数据库对象
    • ● 在Navicat创建的SQL 程序脚本
    • ● 在Navicat创建的SQL  server 脚本(2)
    • ● 综合实训(1)
    • ● 综合实训(2)
  • 技术拓展   (MYSQL)数据库技术与应用
    • ● MYSQL技术
  • 教与学图片剪影
    • ● 教学团队
    • ● 学生学习实训
    • ● 活动与交流
使用T-SQL创建索引
  • 1
  • 2

使用T-SQL 命令创建索引

使用CREATE INDEX语句来创建索引,这是最基本的索引创建方式,并且这种方法最具有适应性,可以创建出符合自己需要的索引。在使用这种方式创建索引时,可以使用许多选项,例如指定数据页的充满度、进行排序、整理统计信息等,从而优化索引。

使用这种方法,可以指定索引类型、唯一性、包含性和复合性,也就是说,既可以创建聚集索引,也可以创建非聚集索引;既可以在一个列上创建索引,也可以在两个或两个以上的列上创建索引。

SQL Server 中,使用CREATE INDEX语句可以在关系表上创建索引,其基本的语法格式如下:

CREATE [UNIQUE][CLUSTERED|NONCLUSTERED]

INDEX 索引名

ON <表名|视图名>(列名[ASC|DESC][,…n]

*功能:

*为指定的表或视图按照指定的列(索引键)、升序(ASC)、降序(DESC)创建唯一、聚集或非聚集索引。

*说明:

*UNIQUE:指定唯一索引。

*CLUSTERED|NONCLUSTERED:指定聚集索引或非聚集索引。

*ASC|DESC:确定索引列升序或降序,默认为升序(ASC)。






*案:*为了提高依据图书名查找图书的速度,在数据库Library中为图书表Book创建一个不唯一、非聚集索引Bookindex,索引键为Bname,升序排列。

*代码:

USE Library

GO

CREATE  NONCLUSTERED

   INDEX Bookindex

    ON  Book(Bname ASC)


例:对数据库bookData [书目信息]表,按作者创建索引,升序排列

USE bookData

GO

CREATE 

   INDEX Bookindex

    ON  书目信息(作者)

SELECT  *   FROM  书目信息



     

例:USE  [教务数据库]

       CREATE  INDEX IX_教师

             ON 教师表(姓名)

      索 引创建好以后,随着业务的发展,有时需要对索引作出更改。在SOL Server 中修改索引的方法主要有两种:一是在SSMS中通过方便的图形化工具来实现,二是通过T-SQL语句来实现。

一、使用图形工具修改索引

下面通过一个例子演示使用图形工具修改索引的过程。

【例7-5】修改StudentInfo学生表中的index student id索引。

(1)启动SSMS,展开对象资源管理器中数据库Student |“”| StudentInfo| “索引。右击要修改的index_student id索引。

(2)在弹出的快捷菜单中可以选择重新生成重新组织禁用启用属性等命令,这里选择属性命令,弹出索引属性对话框。

(3)“索引属性对话框跟创建索引对话框内容类似,我们只要修改相应的参数内容,单击确定按钮即可。

二、使用T-SQL语句修改索引

修改索引除了可以使用图形工具外,还可以使用ALTER INDEX语句。其语法格式如下:

ALTER INDEX { index_name | ALL }

       ON <object>

   { REBUILD

     [ [ WITH  (<rebuild_index_option>  [,…n  ]  )]

   | PARTITION= partition_number

   [WITH (<single_partition_rebuild_index_option> [,…n])

          ]

     ]

  ]

| DISABLE

| REORGANIZE

 [PARTITION= partition_number]

  [ WITH ( LOB_COMPACTION = { ON | OFF } )]

 |  SET  (<set_index_option>[,…n]  )

    )

[;]


禁用索引

索引被禁用,索引还存在,只是用户不能访问索引。禁用一个表的聚集索引,可以防止用户对数据进行访问,数据仍然存在表中,但用户不能对表中的数据进行操作。

语法如下:

ALTER  INDEX  索引名   ON  表名 DISABLE

 

激活索引、重建索引:  ALTER  INDEX  索引名   ON  表名  REBUILD


例:  USE   [教务数据库]

        ALTER  INDEX  IX_教师   ON  教师表  REBUILD


任务    查看索引信息


查看索引信息有两种方法:使用企业管理器和使用T-SQL语句查看过程。

其中使用企业管理器查看索引信息,使用建立索引的时候就可以查看索引的信息。使用系统存储过程查看索引信息, 

其语法格式如下: 

EXEC SP_HELPINDEX 表名  

或  EXEC  SP_HELP 表名 


索引信息包括索引统计信息和索引碎片信息,通过查询这些信息分析索引性能,可以更好地维护索引。

除了使用目录视图来查看有关索引的信息外,还可以使用系统存储过程来查看数据表或视图中的索引信息,其语法格式如下:

sp_helpindex [ @objname  =  ]  ' name '

语法参数的含义如下。

[ @objname=]‘name‘:用户定义的表或视图的限定或非限定名称。

sp_helpindex:查看索引信息的存储过程

例:EXEC sp_helpindex 书目信息

或  EXEC sp_helpindex  '书目信息'


任务   删除索引

当索引不需要时,可将其删除,以释放更多的硬盘空间。删除索引有两种方法,分别是使用SSMST-SQL语句。

一、在SSMS中删除索引

下面通过一个例子演示使用图形工具删除索引的过程。

【例7-10】删除StudentInfo学生表中的index_student_id索引

(1)启动SSMS,展开对象资源管理器中数据库Student |“”| StudentInfo|“索引。右击要删除的index_student_id索引。

(2)在弹出的快捷菜单中选择删除命令,弹出删除对象对话框。

(3)单击确定按钮即可将index_ student_id索引删除。


二、使用T-SQL删除索引

删除索引,除了可以使用图形工具外,还可以使用DROP INDEX语句。其语法格式如下:

DROP  INDEX   'table.index | view.index’  [,…n]

语法参数的含义如下。

DROP INDEX:用于删除索引。

Table.index:根据表创建索引的表名及索引名。

View.index:根据视图创建索引的视图名及索引名。

【例7-11】删除StudentInfo表中的index_student_id索引。

USE Student

DROP  INDEX  index_student_id

GO