【SQL Server】华中农业大学空间数据库实验报告 实验五 索引

server/2024/11/27 22:37:02/

1.实验目的

  1. 通过课堂理论学习与实验课的实际操作,充分理解索引的相关概念,作用,以及特点,创建索引的基本目的是提高系统性能,虽然实验课堂中我们实际使用的实验数据无法很好的体现索引的优点,但希望我们能在实验课的实际操作中尽可能加深对索引概念的理解;
  2. 可以准确认识主键、索引、聚簇索引、非聚簇索引、唯一索引、降序与升序等等概念间的关系与区别,在面对实际问题与要求时,可以根据自身对索引类型的理解与特定的需要利用交互式方法或T-SQL语句的方法不借助外力帮助,自行创建索引提高数据库性能;
  3. 通过课堂与课后的练习,熟练掌握利用T-SQL语句进行索引设计的基本原则和相关技巧,可以根据实际的需要准确判断如何创建合适的索引,以提高数据库查询的效率。

2.实验内容

  1. 创建索引:交互式管理聚簇索引、SQL创建聚簇索引、交互式管理非聚簇索引、SQL创建非聚簇索引;
  2. 删除索引:交互式删除索引、T-SQL语句删除索引。

3.实验步骤

3.1创建索引

1.交互式管理聚簇索引

(1)在管理聚簇索引之前,我们首先需要对SC表建立主键,因此打开表设计器后,我们根据之前实验课内容对Sno与Cno建立主键;

 (2)主键创建成功后,打开【索引/键】对话框,既可以看到创建主键时,系统自动为我们生成的聚簇索引:

2.SQL创建聚簇索引

新建查询,输入代码如下,其代码含义为使用数据库jiaoxuedb,在数据库表【TEACHER】的列TNO上,创建一个命名为IND_TNO的降序聚簇索引,但此步骤出现了报错,后续实验报告中将与其它错误一起总结:

3.交互式管理非聚簇索引

打开数据库表【TEACHER】的表设计器后,点击【索引/键】对话框,设置参数如下,添加一个在AGE上降序,TN上升序,命名为IND_TN_AGE的非聚簇索引:

4. SQL创建非聚簇索引

新建查询,输入代码如下,其代码含义为使用数据库jiaoxuedb,在数据库表【COURESE】的列CNAME上,创建一个命名为IND_CN的升序聚簇索引。

通过此代码与上述代码对比也可以看出,设置索引时默认为升序,如果希望将索引设置为降序,需要在如下图所示位置输入代码:

3.2删除索引

1.交互式删除索引

交互式删除索引的方法非常简单,打开相应数据库表的表设计器,打开【索引/键】对话框,选择相应索引后,点击删除即可:

2.T-SQL语句删除索引

新建查询,输入代码如下所示,其代码含义为删除数据库表【TEACHER】的命名为【IX_TEACHER_TNAME】的索引:

 4.课后习题

1.对教师表T中的教师号TNO创建聚簇索引,并按降序排列:

与实验3.2的操作步骤与内容相同,新建查询,输入代码如下,:

2.对学生表S中的学号SNO创建唯一索引,并按升序排列:

新建查询,输入代码如下:


http://www.ppmy.cn/server/145453.html

相关文章

Spring事务笔记

目录 1.Spring 编程式事务 2.Transactional 3.事务隔离级别 4.Spring 事务传播机制 什么是事务? 事务是⼀组操作的集合, 是⼀个不可分割的操作. 事务会把所有的操作作为⼀个整体, ⼀起向数据库提交或者是撤销操作请求. 所以这组操作要么同时成 功, 要么同时失败 1.Spri…

开源加密库mbedtls及其Windows编译库

目录 1 项目简介 2 功能特性 3 性能优势 4 平台兼容性 5 应用场景 6 特点 7 Windows编译 8 编译静态库及其测试示例下载 1 项目简介 Mbed TLS是一个由ARM Maintained的开源项目,它提供了一个轻量级的加密库,适用于嵌入式系统和物联网设备。这个项…

如何将APK预置到Android系统

文章目录 1. 准备 APK 文件2. 复制 APK 到系统源码目录3. 调整权限和文件结构4. 更新 Android.mk 或 Android.bp如果使用 Android.mk:如果使用 Android.bp: 5. 重新编译 Android 系统6. 检查生成的镜像7. 刷入系统镜像并验证注意事项 要将一个 APK 预置到…

Spring框架深度剖析:特性、安全与优化

文章目录 Spring框架简介主要特性1. 依赖注入(Dependency Injection, DI)2. 面向切面编程(Aspect-Oriented Programming, AOP)3. 声明式事务管理4. 强大的MVC框架5. 集成测试支持6. 多种数据访问技术的支持 安全性1. 认证&#xf…

林业产品推荐系统:Spring Boot开发手册

3 系统分析 这部分内容虽然在开发流程中处于最开始的环节,但是它对接下来的设计和实现起着重要的作用,因为系统分析结果的好坏,将直接影响后面环节的开展。 3.1可行性研究 影响系统开发的因素有很多,比如开发成本高就不适合开展&a…

使用flink编写WordCount

1. env-准备环境 2. source-加载数据 3. transformation-数据处理转换 4. sink-数据输出 5. execute-执行 流程图&#xff1a; DataStream API开发 //nightlies.apache.org/flink/flink-docs-release-1.13/docs/dev/datastream/overview/ 添加依赖 <properties>&l…

智能工厂的设计软件 所有设计“方面”(Respect/ Aspect /Facet)的三种类(基/源/根)及设计用意 之2 鲁棒性/完整性/健壮性

Q&A Q9、今天我们从三个词&#xff08;鲁棒性/完整性/健壮性&#xff09;继续讨论智能工厂的设计软件中对应于软件架构&#xff0c;程序框架和编码实现的全部设计“方面”&#xff08;respect/ aspect /facet&#xff09;以及每个“方面”都具有的三种类&#xff08;基/源…

力扣 LRU缓存-146

LRU缓存-146 /* 定义双向链表节点&#xff0c;用于存储缓存中的每个键值对。 成员变量&#xff1a;key和value存储键值对。preb和next指向前一个和后一个节点&#xff0c;形成双向链表。 构造函数&#xff1a;默认构造函数&#xff1a;初始化空节点。参数化构造函数&#xff1…