检索数据PPT课件_第1页
检索数据PPT课件_第2页
检索数据PPT课件_第3页
检索数据PPT课件_第4页
检索数据PPT课件_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2021-11-201主要内容 掌握查询的基本语法 掌握常用的SQL函数 掌握TOP关键字和DISTINCT关键字的用法第1页/共36页2021-11-2024.1 T-SQL查询语句 4.1 查询和记录集 查询:即根据用户的要求,将数据库表中符合条件的记录筛选出来的过程。 记录集:符合查询条件的记录组成的二维表结构的结果集。查询请求查询请求查询结果集查询结果集第2页/共36页2021-11-2034.1 T-SQL查询语句 4.1 查询和记录集图为Student表中所有的记录查询广州的所有学生信息第3页/共36页2021-11-2044.1 T-SQL查询语句 使用Select语句进行查询

2、Select语句基本语法格式 SELECT FROM WHERE ORDER BY ASC 或DESC说明 最基本的语法,是对单个表进行查询; SELECT后接要筛选的字段,多个字段之间有逗号分隔; WHERE条件部分是可选的,如果筛选的记录有条件就加,并且可以由多个条件组合查询,多个条件之间根据需要用逻辑运算符AND 和 OR连接。 ORDER BY 关键字可选,排序默认是按照升序即ASC关键字,也可以省略,如果要降序排序,需要明确使用DESC关键字。排序也可按照多个字段进行。第4页/共36页2021-11-2054.1 T-SQL查询语句 使用Select语句进行查询 返回表中所有字段,可

3、以用*替代字段名 例:查询所有学生的信息 SELECT * FROM Student 筛选部分字段,必须明确指定字段名 例:显示住在广州的学生的编号、姓名和性别 SELECT StuNo, StuName, StuSex FROM Student WHERE StuAddress =广州第5页/共36页2021-11-2064.1 T-SQL查询语句 使用Select语句进行查询 在查询中使用别名 用as关键字SELECT StuNo AS 学号, StuName AS 姓名, StuSex AS 性别FROM StudentWHERE (StuAddress = 广州)第6页/共36页202

4、1-11-2074.1 T-SQL查询语句 使用Select语句进行查询 用空格SELECT StuNo 学号, StuName 姓名, StuSex 性别FROM StudentWHERE (StuAddress = 广州) 用=号SELECT 学号=StuNo, 姓名= StuName , 性别 =StuSexFROM StudentWHERE (StuAddress = 广州)第7页/共36页2021-11-2084.1 T-SQL查询语句 使用Select语句进行查询 查询空记录 通过IS NULL、IS NOT NULL来判断是否为空 SELECT 学号=StuNo, 姓名= Stu

5、Name , 性别 =StuSex FROM Student WHERE (StuAddress = IS NOT NULL) 使用复合条件筛选记录 例:筛选考试科目代号002为并且成绩大于70分的信息 SELECT StuNo 学号, CourseNo 课程号, Score 成绩 FROM StuScore WHERE Score70 AND CourseNo=002 ORDER BY CourseNo第8页/共36页2021-11-2094.1 T-SQL查询语句 使用Select语句进行查询 在查询中使用常量列 例:在查询中添加一个常量列国家,列的值为“中国” SELECT StuNo

6、学号, StuName 姓名, StuSex 性别, StuAddress 地址, 国家= 中国 FROM Student在Student表中插入一列,列名为国家,列值为中国第9页/共36页2021-11-20104.1 T-SQL查询语句 使用Select语句进行查询 替换结果集中的数据 例:根据学生成绩,划分不同的等级。成绩大于85分,显示优秀;成绩小于60分显示不及格;其余的显示合格。使用CASE函数来实现。 SELECT StuNo 学号, CourseNo 课程号, 等级=CASE WHEN Score=85 THEN 优秀 WHEN Score=60 THEN 合格 ELSE 不及

7、格 END FROM StuScore第10页/共36页2021-11-20114.1 T-SQL查询语句 使用Select语句进行查询 排序的使用 例:由高到低显示学生的成绩信息 SELECT StuNo 学号, CourseNo 课程号, Score 成绩 FROM StuScore ORDER BY Score DESCn使用ORDER BY子句可以按一个或多个属性列对数据进行排序。n当排序列包含空值(NULL)时,若使用ASC关键字,则排序列为空值的元组最后显示;若使用DESC关键字,则排序列为空值的元组最先显示。第11页/共36页2021-11-20124.1 T-SQL查询语句 使

8、用Select语句进行查询 示例9:由高到低显示学生成绩信息(多列排序) SELECT StuNo 学号, CourseNo 课程号, Score 成绩 FROM StuScore ORDER BY Score ,CourseNo 在该查询中,系统先按照Score进行升序排序(关键字ASC省略),然后 再按照CourseNo进行升序排序。 当基于多个属性对数据进行排序时,出现在ORDER BY子句中的列的顺序是非常重要的,因为系统是按照排序列的先后进行排序的。如果第一个属性相同,则依据第二个属性排序,如果第二个属性相同,则依据第三个属性排序,依此类推。另外,在执行多列排序时,每一个列都可以指定

9、是升序还是降序。第12页/共36页2021-11-2013学生信息表Student(StuNo,StuName,StuDate,StuAddress,StuSex)选课成绩表:StuScore(StuNo,CourseNo,Score)科目表:Course(CourseNo, CourseName,Grade)1.在Student表中插入一条学生记录如下:学号S000088,姓名:王晓萌,性别:女。(在学生信息表中只有StuNo,StuName不能为空,其他均可以是空值)。2.将StuScore表中CourseNo为C001且Score小于60分的记录的Score改为60分。3.将StuSco

10、re表中StuNo为S000010的成绩记录删除。4.删除StuScore表中所有成绩记录,并且删除后信息不能恢复5.在Course表中查询Grade等于3的课程信息的CourseNo, CourseName信息,在查询结果中将CourseNo更名为课程号,将CourseName更名为课程名,查询结果按照CourseNo降序排序第13页/共36页2021-11-20144.2 在查询中使用函数 在查询中经常要对筛选的字段通过函数来实现并做一些处理,T-SQL提供了大量,大概可以分为以下几类: 字符串函数 日期函数 数学函数 系统函数第14页/共36页2021-11-20154.2 在查询中使用

11、函数 字符串函数第15页/共36页2021-11-20164.2 在查询中使用函数 字符串函数第16页/共36页2021-11-20174.2 在查询中使用函数 日期函数第17页/共36页2021-11-20184.2 在查询中使用函数 数学函数第18页/共36页2021-11-20194.2 在查询中使用函数 数学函数n数学函数返回参加运算的数据的数值,如下面的检索语句,分别使用了求圆周率的PI函数、求正弦值的SIN函数、求指数的EXP函数、求幂值的POWER函数等。SELECT PI(), S IN(PI()/2), COS(PI()/4), EXP(10), POWER(10,2)第19

12、页/共36页2021-11-20204.2 在查询中使用函数 系统函数第20页/共36页2021-11-20214.3 Top关键字的使用 语法格式: TOP n 从前向后返回n行数据 TOP n PERCENT 按照百分比返回指定数量的数据行 说明: 当在查询语句中使用了ORDER BY子句时,还经常在SELECT子句中使用 TOP关键字。TOP关键字表示仅在结果集中从前向后列出指定数量的数据行。如果在使用TOP关键字的SELECT语句中没有使用排序子句,则只是随机地返回指定数量的数据行。第21页/共36页2021-11-20224.3 Top关键字的使用例:查询班内前5个学生的信息。SEL

13、ECT TOP (5) * FROM Student ORDER BY Sno本查询先将结果集中的数据按Sno升序排序,然后取出前5个输出显示。例 :查询成绩排名在前30的学生学号、科目和成绩。SELECT TOP 30 PERCENT StuNo, CourseNo, Score FROM StuScore ORDER BY Score DESC本查询先将结果集中的数据按照Score降序排序,再从排序后的记录里取前30进行输出。第22页/共36页2021-11-20234.3 Top关键字的使用 有的读者或许会问,如果设定列出5行数据,但是第6行、第7行甚至更多行的数据如果和第5行一样的话,

14、那么这些行的数据是否会显示?例如在【例11】中,若结果集列出了3行数据,假设第4行数据中Score值也是89的话,那不是就丢失了一部分可以使用的信息吗?要解决这个问题很简单,只需要在TOP子句后使用 WITH TIES子句就可以了。例如同样在【例11】中,如果将SELECT子句改为: 例11 (改):查询成绩排名在前30的学生学号、科目和成绩。 SELECT TOP 30 PERCENT WITH TIES StuNo, CourseNo, Score FROM StuScore ORDER BY Score DESC第23页/共36页2021-11-20244.3 Top关键字的使用 在SQ

15、L Server 2005中还可以用变量来限定显示记录的数量 例:返回前3条学生信息 Declare n int SET n=3 SElECT TOP (n ) * FROM STUDENT 如果在TOP后接的是变量,必须用括号。第24页/共36页2021-11-20254.4 过滤重复记录DISTINCT关键字的使用 语法格式 DISTINCT 列名,n 说明: 在SELECT子句中,可以通过使用ALL或DISTINCT关键字来控制查询结果集的显示。ALL关键字表示检索所有的数据,包括重复的数据行,DISTINCT关键字表示仅仅显示不重复的数据行,对于重复的数据行,则只显示一次。默认使用AL

16、L关键字。 一个SELECT语句中DISTINCT只能出现一次,而且必须放在所有列之前第25页/共36页2021-11-2026一。一。查询考试信息SELECT StuNo AS 学号FROM StuScore二。查询参加了考试的学生SELECT DISTINCT StuNo AS 学号FROM StuScore4.4 过滤重复记录DISTINCT关键字的使用第26页/共36页2021-11-20274.5 计算列的使用 查询数据时,经常需要对表中的数据计算后才能得到满意的结果,SQL Server在数据查询中提供了计算的能力 例:在StuScore表中查询学号,课程号,成绩信息,并将所有人成

17、绩减5分。 SELECT StuNo 学号, CourseNo 课程号, Score-5 成绩 FROM StuScore第27页/共36页2021-11-2028总结 用SELECT语句从数据表中检索数据用户需要的数据 通过给列起别名使得查询的信息更明确 使用TOP关键字可以显示结果集中前n条记录 使用DISTINCT可以消除结果集中重复的记录,使结果集中的记录具有唯一性。n用SELECT语句从数据表中检索数据用户需要的数据n通过给列起别名使得查询的信息更明确n使用TOP关键字可以显示结果集中前n条记录n使用DISTINCT可以消除结果集中重复的记录,使结果集中的记录具有唯一性。 第28页/

18、共36页2021-11-2029作业 课后系统1-6题做在练习册上 复习本章知识点 预习第5章复杂查询第29页/共36页2021-11-20304.1 T-SQL查询语句 4.1 查询和记录集 查询:即根据用户的要求,将数据库表中符合条件的记录筛选出来的过程。 记录集:符合查询条件的记录组成的二维表结构的结果集。查询请求查询请求查询结果集查询结果集第30页/共36页2021-11-20314.1 T-SQL查询语句 使用Select语句进行查询 替换结果集中的数据 例:根据学生成绩,划分不同的等级。成绩大于85分,显示优秀;成绩小于60分显示不及格;其余的显示合格。使用CASE函数来实现。 SELECT StuNo 学号, CourseNo 课程号, 等级=CASE WHEN Score=85 THEN 优秀 WHEN Score=60 THEN 合格 ELSE 不及格 END FROM StuScore第31页/共36页2021-11-20324.2 在查询中使用函数 字符串函数第32页/共36页2021-11-20334.3 Top关键字的使用 语法格式: TOP n 从前向后

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论