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

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 JOINdbo.kecheng ON dbo.chengji.课程ID = dbo.kecheng.课程ID INNER JOINdbo.xueyuan ON dbo.chengji.学员ID = dbo.xueyuan.学员ID

结果

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

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

相关文章

『App自动化测试之Appium基础篇』| 从定义、原理、环境搭建、安装问题排查等深入了解Appium

『App自动化测试之Appium基础篇』| 从定义、原理、环境搭建、安装问题排查等深入了解Appium 1 关于Android UI自动化测试2 Appium简介3 Appium原理3.1 Android端过程3.2 iOS端过程 4 补充内容5 JDK下载6 JDK配置7 SDK下载8 SDK配置9 配置Android环境10 安装NodeJs11 解决node安…

今天刷basic

一 在kali里边链接这个服务器 ssh -p 25199 rootnode4.buuoj.cn 然后回车 yes 输入密码123456 ls查看发现什么都没有,cd ..返回上一级目录 ls 发现有flag.txt 查看文件得到flag flag{477f20d3-acd3-46e1-b50a-633e58b769c7}

Python中读写(解析)JSON文件的深入探究

目录 一、引言 二、如何读取JSON文件 三、如何写入JSON文件 四、如何解析JSON字符串 五、错误处理和异常处理 六、使用第三方库提高效率 七、总结 一、引言 在Python中,我们经常使用JSON(JavaScript Object Notation)格式来存储和传输…

计算机速成课Crash Course - 08. 指令和程序

今天开始计算机速成课Crash Course的系列讲解。 更多技术文章,全网首发公众号 “摸鱼IT” 锁定 -上午11点 - ,感谢大家关注、转发、点赞! 计算机速成课Crash Course - 08. 指令和程序 08. 指令和程序 上集我们把 ALU, 控制单元, RAM, 时钟…

基于Java SSM框架实现超市进销存购物商城管理系统项目【项目源码+论文说明】

基于java的SSM框架实现超市进销存购物商城管理系统演示 摘要 随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,社区生活超市管理系统当然也不能排除在外。社区生活超市管理系统…

【QT】容器类的迭代

迭代器(iterator)为访问容器类里的数据项提供了统一的方法,Qt有两种迭代器类:Java类型的迭代器和STL类型的迭代器。 Java类型的迭代器更易于使用,且提供一些高级功能,而STL类型的迭代器效率更高。 Qt还提供一个关键字foreach&…

ORACLE使用Mybatis-plus批量插入

ORACLE使用mybatis-plus自带的iservice.saveBatch方法时,会报DML Returing cannot be batch错误: 推测原因是oracle不支持insert into table_name (,) values (,),()的写法。且oracle不会自动生…

华为Watch Buds手表耳机声音小怎么办?试试这些方法

使用华为 WATCH Buds 的手表耳机的铁子们,你们有没有和我遇到同样的问题:刚用的时候音质超级好,但是用了一段时间后,偶尔会遇到耳机声音变小,甚至出现左右耳音量不一致的情况。 如果有的话,不用担心&#…

【libcurl库】安装及其编程访问百度首页(一)

一、Libcurl库简介 二、Libcurl等三方库的通用编译方法 库的配置、编译、安装 (1)安装位置的更改(2)编译、安装(3)预览 三、调用libcurl编程访问百度主页 编译(编译时链接库、头文件路径&am…

操作系统的特征

一、并发 并发:指两个或多个事件在同一时间间隔内发生。这些事件宏观上是同时发生的,但微观上是交替发生的。 并行 :是指两个或多个事件同一事件发生。 操作系统的并发性指计算机系统中“同时”运行着多个程序,这些程序宏观上看…

Hadoop学习笔记(HDP)-Part.20 安装Flume

目录 Part.01 关于HDP Part.02 核心组件原理 Part.03 资源规划 Part.04 基础环境配置 Part.05 Yum源配置 Part.06 安装OracleJDK Part.07 安装MySQL Part.08 部署Ambari集群 Part.09 安装OpenLDAP Part.10 创建集群 Part.11 安装Kerberos Part.12 安装HDFS Part.13 安装Ranger …

java小工具util系列3:JSON转实体类对象工具

文章目录 准备工作1.JSONObject获取所有的key2.集合中实体对象转换 list中Enrey转Dto3.字符串转List<BusyTimeIndicatorAlarmThreshold>4.json字符串转JSONObject5.list根据ids数组过滤list6.json字符串转JavaBean对象7.json对象转javabean8.jsonObject转map9.List\<U…

微服务的利与弊

一、前言 自从大多数web架构从单体演进到服务拆分&#xff0c;到微服务一统天下的几年来&#xff0c;应该没有web应用不是微服务架构的吧。最开始是阿里的doubble分层架构&#xff0c;到后来的SpringCloud全家桶&#xff0c;还有各个大厂自己定义的一套服务治理框架。微服务无…

DS二分查找_搜索二维矩阵

Description 使用二分查找法来判断m*n矩阵matrix中是否存在目标值target。 该矩阵有以下特性&#xff1a; 1. 每行中的整数从左到右升序排列&#xff1b; 2. 每行的第一个整数大于前一行的最后一个整数。 Input 第一行输入m和n&#xff0c;分别表示矩阵的行数和列数&#…

python 自动发送邮件

对于工作中&#xff0c;如果每日需要发送具有规律性的邮件&#xff0c;采用python自动发送可以节约很多时间&#xff0c;提高效率。本文主要以腾讯企业邮箱为例&#xff0c;介绍python自动发送邮件&#xff08;含附件&#xff09;的功能。为保护隐私&#xff0c;代码中的邮箱及…

Edge调用Aria2下载

一、准备工作 1、Edge浏览器&#xff1a;Windows系统自带或点击下载&#xff1b;   2、Aria2 gui&#xff1a;点击github下载或自行搜索下载其他版本&#xff1b; 二、启动Aria2 gui 解压下载的Aria2 gui到任意目录&#xff0c;点击“Aria2c启动器”或“AriaNg启动器”皆可。…

文章解读与仿真程序复现思路——中国电机工程学报EI\CSCD\北大核心《“无废”电–氢充能服务区多源微网优化运行模型》

这个文章标题涉及到“无废”电–氢充能服务区、多源微网和优化运行模型。下面我将对标题中的关键术语进行解读&#xff1a; “无废”电–氢充能服务区&#xff1a; 无废电&#xff08;Waste-free electricity&#xff09;&#xff1a; 这可能指的是通过某种方式生产的电力&…

从零开始学习 JS APL(六):完整指南和实例解析

学习目标&#xff1a; 1. 能够利用正则表达式校验输入信息的合法性 2. 具备利用正则表达式验证小兔鲜注册页面表单的能力 学习内容&#xff1a; 正则表达式 综合案例 阶段案例 学习时间&#xff1a; 周一至周五晚上 7 点—晚上9点周六上午 9 点-上午 11 点周日下午 3 点-下…

短视频系统设计:如何支持三千万用户同时在线看视频?

Java全能学习面试指南&#xff1a;https://javaxiaobear.cn 短视频&#xff08;short video&#xff09;通常时长在 15 分钟以内&#xff0c;主要是在移动智能终端上进行拍摄、美化编辑或加特效&#xff0c;并可以在网络社交平台上进行实时分享的一种新型视频形式。短视频具有时…

简单地将附件POST到Notes应用中

大家好&#xff0c;才是真的好。 这半年我们会讲很多开发知识&#xff0c;这篇紧接上篇《通过URL将HTML表单数据创建到Domino应用中》&#xff0c;讲述如何将附件POST到Note应用中。 原理是一样&#xff0c;首先&#xff0c;你得有一个表单&#xff0c;我们用html写一个&…