《检索数据PPT学习教案.pptx》由会员分享,可在线阅读,更多相关《检索数据PPT学习教案.pptx(36页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、会计学1检索检索(jin su)数据数据第一页,共36页。2023/2/272主要主要(zhyo)内容内容n n掌握查询的基本语法n n掌握常用(chn yn)的SQL函数n n掌握TOP关键字和DISTINCT关键字的用法第1页/共36页第二页,共36页。2023/2/2734.1 T-SQL查询查询(chxn)语句语句n n4.1 查询和记录集n n查询:即根据用户(yngh)的要求,将数据库表中符合条件的记录筛选出来的过程。n n记录集:符合查询条件的记录组成的二维表结构的结果集。查询请求查询请求查询结果集查询结果集第2页/共36页第三页,共36页。2023/2/2744.1 T-SQL
2、查询查询(chxn)语句语句n n4.1 查询(chxn)和记录集图为Student表中所有(suyu)的记录查询广州的所有学生信息第3页/共36页第四页,共36页。2023/2/2754.1 T-SQL查询查询(chxn)语句语句n n使用Select语句进行查询n nSelect语句基本语法格式n nSELECT n n FROM n n WHERE n n ORDER BY ASC 或DESCn n说明n n最基本的语法,是对单个表进行查询;n nSELECT后接要筛选的字段,多个字段之间有逗号分隔;n nWHERE条件部分是可选的,如果筛选的记录有条件就加,并且(bngqi)可以由多个
3、条件组合查询,多个条件之间根据需要用逻辑运算符AND 和 OR连接。n nORDER BY 关键字可选,排序默认是按照升序即ASC关键字,也可以省略,如果要降序排序,需要明确使用DESC关键字。排序也可按照多个字段进行。第4页/共36页第五页,共36页。2023/2/2764.1 T-SQL查询查询(chxn)语句语句n n使用Select语句进行查询n n返回表中所有(suyu)字段,可以用*替代字段名n n例:查询所有(suyu)学生的信息n nSELECT*FROM Studentn n筛选部分字段,必须明确指定字段名n n例:显示住在广州的学生的编号、姓名和性别n nSELECT St
4、uNo,StuName,StuSexn n FROM Studentn n WHERE StuAddress=广州第5页/共36页第六页,共36页。2023/2/2774.1 T-SQL查询查询(chxn)语句语句n n使用Select语句进行查询n n在查询中使用别名n n用as关键字n nSELECT StuNo AS 学号,StuName AS 姓名(xngmng),StuSex AS 性别n nFROM Studentn nWHERE (StuAddress=广州)第6页/共36页第七页,共36页。2023/2/2784.1 T-SQL查询查询(chxn)语句语句n n使用Select
5、语句进行查询n n用空格(kn)n nSELECT StuNo 学号,StuName 姓名,StuSex 性别n nFROM Studentn nWHERE (StuAddress=广州)n n用=号n nSELECT 学号=StuNo,姓名=StuName,性别=StuSexn nFROM Studentn nWHERE (StuAddress=广州)第7页/共36页第八页,共36页。2023/2/2794.1 T-SQL查询查询(chxn)语句语句n n使用Select语句进行查询n n查询空记录n n通过IS NULL、IS NOT NULL来判断(pndun)是否为空n nSELECT
6、 学号=StuNo,姓名=StuName,性别=StuSexn n FROM Studentn n WHERE (StuAddress=IS NOT NULL)n n使用复合条件筛选记录n n例:筛选考试科目代号002为并且成绩大于70分的信息n nSELECT StuNo 学号,CourseNo 课程号,Score 成绩n n FROM StuScoren n WHERE Score70 AND CourseNo=002n n ORDER BY CourseNo第8页/共36页第九页,共36页。2023/2/27104.1 T-SQL查询查询(chxn)语句语句n n使用Select语句进行
7、查询n n在查询中使用常量列n n例:在查询中添加一个(y)常量列国家,列的值为“中国”n nSELECT StuNo 学号,StuName 姓名,StuSex 性别,n n StuAddress 地址,国家=中国n n FROM Student在Student表中插入一列(yli),列名为国家,列值为中国第9页/共36页第十页,共36页。2023/2/27114.1 T-SQL查询查询(chxn)语句语句n n使用Select语句进行查询n n替换结果集中的数据n n例:根据学生成绩,划分不同的等级。成绩大于85分,显示优秀;成绩小于60分显示不及格;其余的显示合格。使用CASE函数(hns
8、h)来实现。n nSELECT StuNo 学号,CourseNo 课程号,n n 等级=CASEn n WHEN Score=85 THEN 优秀 n n WHEN Score=60 THEN 合格n n ELSE 不及格 n n ENDn n FROM StuScore第10页/共36页第十一页,共36页。2023/2/27124.1 T-SQL查询查询(chxn)语句语句n n使用Select语句进行查询n n排序(pi x)的使用n n例:由高到低显示学生的成绩信息n nSELECT StuNo 学号,CourseNo 课程号,Score 成绩n n FROM StuScoren n
9、ORDER BY Score DESCn使用ORDERBY子句可以按一个或多个属性列对数据进行(jnxng)排序。n当排序列包含空值(NULL)时,若使用ASC关键字,则排序列为空值的元组最后显示;若使用DESC关键字,则排序列为空值的元组最先显示。第11页/共36页第十二页,共36页。2023/2/27134.1 T-SQL查询查询(chxn)语句语句n n使用使用SelectSelect语句进行查询语句进行查询n n示例示例9 9:由高到低显示学生成绩信息(多列排序:由高到低显示学生成绩信息(多列排序(pi x)(pi x))n nSELECT StuNo SELECT StuNo 学号学
10、号,CourseNo,CourseNo 课程号课程号,Score,Score 成绩成绩 n n FROM StuScore FROM StuScoren n ORDER BY Score ORDER BY Score,CourseNoCourseNon n在该查询中,系统先按照在该查询中,系统先按照ScoreScore进行升序排序进行升序排序(pi x)(pi x)(关键字(关键字ASCASC省略),然后省略),然后 再按照再按照CourseNoCourseNo进行升序排序进行升序排序(pi x)(pi x)。n n当基于多个属性对数据进行排序当基于多个属性对数据进行排序(pi x)(pi x
11、)时,出现在时,出现在ORDER BYORDER BY子子句中的列的顺序是非常重要的,因为系统是按照排序句中的列的顺序是非常重要的,因为系统是按照排序(pi x)(pi x)列的列的先后进行排序先后进行排序(pi x)(pi x)的。如果第一个属性相同,则依据第二个属的。如果第一个属性相同,则依据第二个属性排序性排序(pi x)(pi x),如果第二个属性相同,则依据第三个属性排序,如果第二个属性相同,则依据第三个属性排序(pi x)(pi x),依此类推。另外,在执行多列排序,依此类推。另外,在执行多列排序(pi x)(pi x)时,每一个时,每一个列都可以指定是升序还是降序。列都可以指定是
12、升序还是降序。第12页/共36页第十三页,共36页。2023/2/2714学生信息表学生信息表Student(StuNo,StuName,StuDate,StuAddress,StuSex)Student(StuNo,StuName,StuDate,StuAddress,StuSex)选课成绩表:选课成绩表:StuScore(StuNo,CourseNo,Score)StuScore(StuNo,CourseNo,Score)科目表:科目表:Course(CourseNo,CourseName,Grade)Course(CourseNo,CourseName,Grade)在在StudentSt
13、udent表中插入一条学生记录如下:学号表中插入一条学生记录如下:学号S000088S000088,姓名:王晓萌,性别,姓名:王晓萌,性别(xngbi)(xngbi):女。(在学生信息表中只有:女。(在学生信息表中只有StuNo,StuNameStuNo,StuName不能为空,其不能为空,其他均可以是空值)。他均可以是空值)。将将StuScoreStuScore表中表中CourseNoCourseNo为为C001C001且且ScoreScore小于小于6060分的记录的分的记录的ScoreScore改为改为6060分。分。将将StuScoreStuScore表中表中StuNoStuNo为为S
14、000010S000010的成绩记录删除。的成绩记录删除。删除删除StuScoreStuScore表中所有成绩记录,并且删除后信息不能恢复表中所有成绩记录,并且删除后信息不能恢复在在CourseCourse表中查询表中查询GradeGrade等于等于3 3的课程信息的的课程信息的CourseNo,CourseNameCourseNo,CourseName信息,信息,在查询结果中将在查询结果中将CourseNoCourseNo更名为课程号,将更名为课程号,将CourseNameCourseName更名为课程更名为课程名,查询结果按照名,查询结果按照CourseNoCourseNo降序排序降序排序
15、第13页/共36页第十四页,共36页。2023/2/27154.2 在查询在查询(chxn)中使用函数中使用函数n n在查询中经常要对筛选的字段通过(tnggu)函数来实现并做一些处理,T-SQL提供了大量,大概可以分为以下几类:n n字符串函数n n日期函数n n数学函数n n系统函数第14页/共36页第十五页,共36页。2023/2/27164.2 在查询中使用在查询中使用(shyng)函数函数n n字符串函数(hnsh)第15页/共36页第十六页,共36页。2023/2/27174.2 在查询在查询(chxn)中使用函数中使用函数n n字符串函数(hnsh)第16页/共36页第十七页,共
16、36页。2023/2/27184.2 在查询中使用在查询中使用(shyng)函数函数n n日期(rq)函数第17页/共36页第十八页,共36页。2023/2/27194.2 在查询中使用在查询中使用(shyng)函数函数n n数学(shxu)函数第18页/共36页第十九页,共36页。2023/2/27204.2 在查询在查询(chxn)中使用函数中使用函数n n数学(shxu)函数n数学函数返回参加运算的数据的数值,如下面的检索语句,分别(fnbi)使用了求圆周率的 PI函数、求正弦值的 SIN函数、求指数的 EXP函数、求幂值的 POWER函数等。nSELECTPI(),SIN(PI()/2
17、),COS(PI()/4),EXP(10),POWER(10,2)第19页/共36页第二十页,共36页。2023/2/27214.2 在查询中使用在查询中使用(shyng)函数函数n n系统(xtng)函数第20页/共36页第二十一页,共36页。2023/2/27224.3 Top关键字的使用关键字的使用(shyng)n n语法格式:语法格式:n nTOP n TOP n 从前向后返回从前向后返回n n行数据行数据n nTOP n PERCENT TOP n PERCENT 按照百分比返回指定数量的数据行按照百分比返回指定数量的数据行n n说明:说明:n n当在查询语句中使用了当在查询语句中使
18、用了ORDER BYORDER BY子句时,还经常在子句时,还经常在SELECTSELECT子句中使用子句中使用n nTOPTOP关键字。关键字。TOPTOP关键字表示仅在结果集中从前向后列出指定数量的数据行。如关键字表示仅在结果集中从前向后列出指定数量的数据行。如果果(rgu(rgu)在使用在使用TOPTOP关键字的关键字的SELECTSELECT语句中没有使用排序子句,则只是随机地语句中没有使用排序子句,则只是随机地返回指定数量的数据行。返回指定数量的数据行。第21页/共36页第二十二页,共36页。2023/2/27234.3 Top关键字的使用关键字的使用(shyng)n n例:查询班内
19、前例:查询班内前5 5个学生的信息。个学生的信息。n nSELECT TOP(5)*SELECT TOP(5)*n n FROM Student FROM Studentn n ORDER BY Sno ORDER BY Snon n本查询先将结果集中的数据按本查询先将结果集中的数据按SnoSno升序排序,然后取出前升序排序,然后取出前5 5个输出显示。个输出显示。n n例例 :查询成绩排名在前:查询成绩排名在前3030的学生学号、科目的学生学号、科目(km)(km)和成绩。和成绩。n nSELECT TOP 30 PERCENT StuNo,CourseNo,Score SELECT TOP
20、 30 PERCENT StuNo,CourseNo,Score n n FROM StuScore FROM StuScoren n ORDER BY Score DESC ORDER BY Score DESCn n本查询先将结果集中的数据按照本查询先将结果集中的数据按照ScoreScore降序排序,再从排序后的记录里取前降序排序,再从排序后的记录里取前3030进行输出。进行输出。第22页/共36页第二十三页,共36页。2023/2/27244.3 Top关键字的使用关键字的使用(shyng)n n有有的的读读者者或或许许会会问问,如如果果设设定定列列出出5 5行行数数据据,但但是是(dn
21、sh)(dnsh)第第6 6行行、第第7 7行行甚甚至至更更多多行行的的数数据据如如果果和和第第5 5行行一一样样的的话话,那那么么这这些些行行的的数数据据是是否否会会显显示示?例例如如在在【例例1111】中中,若若结结果果集集列列出出了了3 3行行数数据据,假假设设第第4 4行行数数据据中中ScoreScore值值也也是是8989的的话话,那那不不是是就就丢丢失失了了一一部部分分可可以以使使用用的的信信息息吗吗?要要解解决决这这个个问问题题很很简单,只需要在简单,只需要在TOPTOP子句后使用子句后使用n n WITH TIES WITH TIES子句就可以了。例如同样在【例子句就可以了。例
22、如同样在【例1111】中,如果将】中,如果将SELECTSELECT子句改为:子句改为:n n例例11 11(改):查询成绩排名在前(改):查询成绩排名在前3030的学生学号、科目和成绩。的学生学号、科目和成绩。n nSELECT TOP 30 PERCENT WITH TIES StuNo,CourseNo,Score SELECT TOP 30 PERCENT WITH TIES StuNo,CourseNo,Score n n FROM StuScore FROM StuScoren n ORDER BY Score DESC ORDER BY Score DESC第23页/共36页第二
23、十四页,共36页。2023/2/27254.3 Top关键字的使用关键字的使用(shyng)n n在SQL Server 2005中还可以用变量来限定显示记录的数量n n例:返回前3条学生(xu sheng)信息n nDeclare n intn n SET n=3n n SElECT TOP (n)*n n FROM STUDENTn n如果在TOP后接的是变量,必须用括号。第24页/共36页第二十五页,共36页。2023/2/27264.4 4.4 过滤过滤过滤过滤(gul(gul)重复记录重复记录重复记录重复记录DISTINCTDISTINCT关键字的使用关键字的使用关键字的使用关键字的
24、使用n n语法格式n nDISTINCT 列名,nn n说明:n n在SELECT子句(z j)中,可以通过使用ALL或DISTINCT关键字来控制查询结果集的显示。ALL关键字表示检索所有的数据,包括重复的数据行,DISTINCT关键字表示仅仅显示不重复的数据行,对于重复的数据行,则只显示一次。默认使用ALL关键字。n n一个SELECT语句中DISTINCT只能出现一次,而且必须放在所有列之前第25页/共36页第二十六页,共36页。2023/2/2727一。查询考试信息一。查询考试信息SELECT StuNo AS 学号学号FROM StuScore二。查询参加二。查询参加(cnji)了考
25、试的学生了考试的学生SELECT DISTINCT StuNo AS 学号学号FROM StuScore4.4 4.4 过滤过滤过滤过滤(gul(gul)重复记录重复记录重复记录重复记录DISTINCTDISTINCT关键字的使用关键字的使用关键字的使用关键字的使用第26页/共36页第二十七页,共36页。2023/2/27284.5 计算计算(j sun)列的使用列的使用n n查询数据时,经常需要对表中的数据计算后才能得到满意的结果查询数据时,经常需要对表中的数据计算后才能得到满意的结果(ji gu(ji gu),SQL ServerSQL Server在数在数据查询中提供了计算的能力据查询中
26、提供了计算的能力n n例:在例:在StuScoreStuScore表中查询学号,课程号,成绩信息,并将所有人成绩减表中查询学号,课程号,成绩信息,并将所有人成绩减5 5分。分。n nSELECT StuNo SELECT StuNo 学号学号,CourseNo,CourseNo 课程号课程号,Score-5,Score-5 成绩成绩n n FROM StuScore FROM StuScore第27页/共36页第二十八页,共36页。2023/2/2729总结总结(zngji)n n用SELECT语句从数据表中检索数据用户需要的数据n n通过给列起别名使得查询的信息更明确n n使用TOP关键字可以(ky)显示结果集中前n条记录n n使用DISTINCT可以(ky)消除结果集中重复的记录,使结果集中的记录具有唯一性。n用SELECT语句从数据表中检索数据用户需要的数据n通过(tnggu)给列起别名使得查询的信息更明确n使用TOP关键字可以显示结果集中前n条记录n使用DISTINCT可以消除结果集中重复的记录,使结果集中的记录具有唯一性。第28页/共36页第二十九页,共36页。2023/2/2730作业作业(zuy)n n课后系统1-6题做在练习册上n n复习本章知识点n n预习(yx)第5章复杂查询第29页/共36页第三十页,共36页。