创建数据库并使用索引查询学员考试成绩

news2025/2/22 9:16:20

5.1索引

     索引提供指针以指向存储在表中指定列的数据值,然后根据指定的次序排列这些指针,再跟随 指针到达包含该值的行。

5.1.1什么是索引

    数据库中的索引与书籍中的目录类似。在一本书中,无须阅读整本书,利用目录就可以快速查 找所需信息。在数据库中,索引使数据库程序无须对整个表进行扫描,就可以在其中找到所需数据。 书中的目录是一个词语列表,其中注明了包含各个词的页码。而数据库中的索引是某个表中一列或 若干列值的集合,以及物理标识这些值的数据页的逻辑指针清单。

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

     索引页是数据库中存储索引的数据页。索引页存放检索数据行的关键字页及该数据行的地址指 针。索引页类似于汉语字(词)典中按拼音或笔画排序的目录页。通过使用索引,可以大大提高数 据库的检索速度,改善数据库性能。

5.1.2 索引分类

在SQL Server 中,常用的索引有以下六类。

1.唯一索引

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

     如果现有数据中存在重复的键值,则一般情况下大多数数据库不允许创建唯一索引,当新数据 将使表中的键值重复时,数据库也拒绝接收此数据。例如,如果在某个表中的“身份证号”列上创 建了唯一索引,则所有记录的身份证号不能重复。

:创建了唯一约束,将自动创建唯一索引。尽管唯一索引有助于找到 信息,但是为了获得最佳性能,建议使用主键约束。

2.主键索引

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

3.聚集索引

    在聚集索引中,表中各行的物理顺序与键值的逻辑(索引)顺序相同。

4.非聚集索引

     非聚集索引建立在索引页上,在查询数据时可以从索引中找到记录存放的位置。

     非聚集索引使表中各行数据存放的物理顺序与键值的逻辑顺序不匹配。聚集索引比非聚集索引 有更快的数据访问速度。例如,按笔画排序的索引就是非聚集索引.“1”画的字(词)对应的页码 可能比“3”画的字(词)对应的页码大(靠后).

:在SQLServer中,一个表只能创建一个聚集索引,但可以有多个非 聚集索引。设置某列为主键,该列就默认为聚集索引。

5.复合索引

     在创建索引时,并不是只能对其中一列创建索引,与创建主键一样,可以将多个列组合作为索 引,这种索引称为复合索引。

     需要注意的是,只有用到复合索引的第一列或整个复合索引列作为条件完成数据查询时才会用到该索引。

6.全文索引

      全文索引是一种特殊类型的基于标记的功能性索引,由SQL Server 中全文引擎服务创建和维护。  全文索引主要用于在大量文本中搜索字符串,此时使用全文索引的效率将大大高于使用T-SQL 的LKE关键字的效率,因为全文索引的创建过程与其他类型的索引有很大的差别,所以建议学员借 助SOL Server联机帮助学习其创建和使用。

实验环境

在SQL Server 2016的服务器上,clss数据库保存了学员及考试信息,包含的表及结构如图所示。

 xueyuan 表

chengji 表 

 

 kecheng 表

需求描述

> 利用索引查询考试成绩为80~90分的所有记录。

> 要求输出:学员姓名、课程名、考试日期和学员成绩。

利用索引查询考试成绩为80~90分的所有记录。

先创建非聚集索引,在数据库clss下 > 表dbo.chengji > 索引 > 新建索引 > 非聚集索引

 

 右键clss数据库,新建查询,输入以下内容

select * from chengji
with (index=non)
where 学员成绩 between 80 and 90

查询结果

 要求输出:学员姓名,课程名、考试日期和学员成绩。

在数据库视图中新建视图,把这3个表都添加进来,选中题目所要求的,右键执行显示出来的命令即可

SELECT  dbo.xueyuan.学员姓名, dbo.kecheng.课程名, dbo.chengji.考试日期, dbo.chengji.学员成绩
FROM      dbo.chengji INNER JOIN
                   dbo.kecheng ON dbo.chengji.课程ID = dbo.kecheng.课程ID INNER JOIN
                   dbo.xueyuan ON dbo.chengji.学员ID = dbo.xueyuan.学员ID

结果

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1286173.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Leetcod面试经典150题刷题记录——数组 / 字符串篇

数组 / 字符串篇 1. 合并两个有序数组Python3排序法双指针法 2. 移除元素Python3 3. 删除有序数组中的重复元素Python3 7. 买卖股票的最佳时机Python3 8. 买卖股票的最佳时机ⅡPython3贪心法动态规划法 11. H 指数Python3排序法计数排序法二分查找 有个技巧,若想熟悉…

Vue项目图片预览v-viewer插件使用,图片预览,图片查看;antdesign+vue2+v-viewer实现图片查看器并可删除图片

Vue项目图片预览v-viewer插件使用 1. 安装 v-viewer 你可以使用 npm 或者 yarn 来安装 v-viewer: npm install v-viewer 或者 yarn add v-viewer 2. 导入和配置 v-viewer 在你的 Vue 项目中,你需要在入口文件(通常是 main.js&#xff09…

通信标准化协会,信通院及量子信息网络产业联盟调研玻色量子,共绘实用化量子未来!

8月14日,中国通信标准化协会,信通院标准所及量子信息网络产业联盟等单位领导走访调研北京玻色量子科技有限公司(以下简称“玻色量子”),参观了玻色量子公司及自建的十万颗粒洁净度的光量子信息技术实验室🔗…

自己开发组件更新到npm网站上 通过npm install 安装 保姆级别教程

文章目的 在项目开发中,经常通过npm install安装使用各种各样的npn包。本文记录如何自己实现的一个npm包 1. 环境准备 开发环境安装好,没有准备好环境 需要先安装哦 2. 创建Vue项目 初始化Vue项目:vue create xwdm-test 选择手动选择功能 Manually selec…

mac shortcut keys cheat sheet【mac 快捷键清单】

文章目录 剪切、拷贝、粘贴和其他常用快捷键访达和系统快捷键 Mac 键盘快捷键 Command(或 Cmd)⌘ Shift ⇧ Option(或 Alt)⌥ Control(或 Ctrl)⌃ Caps Lock ⇪ Fn 剪切、拷贝、粘贴和其他常用快捷…

分享106个图片JS特效,总有一款适合您

分享106个图片JS特效,总有一款适合您 106个图片JS特效下载链接:百度网盘 请输入提取码 提取码:6666 Python采集代码下载链接:采集代码.zip - 蓝奏云 学习知识费力气,收集整理更不易。知识付费甚欢喜&#xff0c…

4、类和对象、this指针、常对象和常函数

类和对象 类的一般形式 访问控制限定符 public 公有成员,谁都可以访问protected 保护成员,只有类自己和子类可以访问private 私有成员,只有类自己可以访问 类和结构的访问控制限定符区别 类的缺省访问控制限定为私有(private)结构的缺省访…

C++空类的那点事儿

什么是C的空类 顾名思义,空类就是指哪些不包含成员变量的类。例如以下这个就是一个空类: class EmptyBase {}; 既然如此,那么是不是说空类的内部一定不会其他代码呢?不是的,空类内部也可以包含其他东西,…

数字化车间|用可视化技术提升车间工作效率

数字化车间正在成为现代制造业的重要组成部分。随着科技的不断进步,传统的车间生产方式逐渐地被数字化和自动化取代。数字化车间将机器和软件进行整合,实现了生产过程的高效、精确和可追溯。在数字化车间中,机器之间可以进行无缝的通信和协作…

【云备份】客户端实现 及 项目整体总结

文章目录 客户端客户端实现思想客户端文件操作类的设计与拷贝Util.hpp的设计data.hpp的设计Storage —— 持久化存储Initload——数据初始化加载 cloud.hpp的设计GetFileIdentifier——创建文件唯一标识Upload—— 文件上传IsNeedupload —— 客户端文件是否需要上传判断RunMod…

正点原子linux应用编程——提高篇5

这篇笔记记一下网络应用编程以及CAN总线的应用编程。 网络基础知识 这个在学习lwIP的时候已经接触过了,这边再过一下,我自己觉得没什么意思的我就跳过了。 网络通信概述 网络通信本质上是一种进程间通信,是位于网络中不同主机上的进程之间…

麒麟linux将图片批量生成PDF的方法

笔者手里有一批国产linu系统,目前开始用在日常的工作生产环境中,我这个老程序猿勉为其难的充当运维的或网管的角色。 国产linux系统常见的为麒麟Linux,统信UOS等,基本都是基于debian再开发的linux。 问题描述: wind…

冬天来了,波司登的高端化“春天”不远了?

最近,羽绒服频繁“贵”上热搜。 在众多热搜词条中,一条“国产羽绒服卖到7000元”的话题一度将波司登推上了舆论的风口浪尖。 对此,波司登在最新的业绩说明会上进行了回应,公司表示:“波司登旗下主品牌及子品牌将形成差…

律所信息化建设成为趋势,Alpha系统助力律所数字化升级

近些年来,越来越多的律所借助数字化技术进行信息化建设,围绕“智慧律所”建设做了大量的努力。为尽快完成这一目标,经过深入研判,多数律所决定引进“Alpha法律智能操作系统”。该系统以其强大功能为律所智慧化建设注入催化剂。 据…

2023年AI工具排行榜:最全工具汇总!

如今,人工智能技术正在快速崛起,AI助手、语音识别、机器翻译等工具深深渗透到我们的工作和生活中。这些智能工具极大地提高了我们的工作效率,使我们能更加专注于创造性的任务。 本文将为读者推荐一些实用的AI神器,只要掌握其中一个,就能极大地提升你的工作能力,事半…

使用Python的PyQt实现财务综合计算

背景: 考核内容 使用 Python 编写程序代码,设计一个带交互界面的财务分析软件,并满足以下要求: PART1:《财务软件设计思路报告》 (30分) (1)编写《财务软件设计思路报告》,描述你编制这个财务软件的设计目标、应用场景、设计思路…

Mysql进阶-事务锁

前置知识-事务 事务简介 事务 是一组操作的集合,它是一个不可分割的工作单位,事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求,即这些操作要么同时成功,要么同时失败。 就比如: 张三给李四转账1000块钱&#xff0…

基于AT89C51单片机四位加法计算器的设计

1.设计任务 利用AT89C51单片机为核心控制元件,设计一个四位加法计算器,设计的系统实用性强、操作简单,实现了智能化、数字化。 1)、通过4*4矩阵键盘输入数字及运算符; 2)、可以进行4位十进制数以内的加法…

线程池(Linux +C)

参考 手写线程池 - C语言版 | 爱编程的大丙 (subingwen.cn) 目录 1.为什么需要线程池? 1)线程问题: 2)如何解决线程问题(线程池的优势): 2.线程池是什么? 1)线程的…

某夕夕商家告诉你:这样寄快递居然这么省钱(便宜寄全国)

在当下很多时候寄快递成为了困扰很多人的问题,比如很多时候都会面临运费贵的问题,而且寄快递的效率也得不到保障,即使投诉快递员最终也是无济于事。其实在目前来看寄快递并没有这么难,闪侠惠递就能够有效的寄快递,而且…