《检索数据学习.pptx》由会员分享,可在线阅读,更多相关《检索数据学习.pptx(36页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、2023/3/251主要内容掌握查询的基本语法掌握常用的SQL函数掌握TOP关键字和DISTINCT关键字的用法第1页/共36页2023/3/2524.1 T-SQL查询语句4.1查询和记录集查询:即根据用户的要求,将数据库表中符合条件的记录筛选出来的过程。记录集:符合查询条件的记录组成的二维表结构的结果集。查询请求查询请求查询结果集查询结果集第2页/共36页2023/3/2534.1 T-SQL查询语句4.1查询和记录集图为Student表中所有的记录查询广州的所有学生信息第3页/共36页2023/3/2544.1 T-SQL查询语句使用Select语句进行查询Select语句基本语法格式S
2、ELECTFROMWHEREORDERBYASC或DESC说明最基本的语法,是对单个表进行查询;SELECT后接要筛选的字段,多个字段之间有逗号分隔;WHERE条件部分是可选的,如果筛选的记录有条件就加,并且可以由多个条件组合查询,多个条件之间根据需要用逻辑运算符AND和OR连接。ORDERBY关键字可选,排序默认是按照升序即ASC关键字,也可以省略,如果要降序排序,需要明确使用DESC关键字。排序也可按照多个字段进行。第4页/共36页2023/3/2554.1 T-SQL查询语句使用Select语句进行查询返回表中所有字段,可以用*替代字段名例:查询所有学生的信息SELECT*FROMStu
3、dent筛选部分字段,必须明确指定字段名例:显示住在广州的学生的编号、姓名和性别SELECTStuNo,StuName,StuSexFROMStudentWHEREStuAddress=广州第5页/共36页2023/3/2564.1 T-SQL查询语句使用Select语句进行查询在查询中使用别名用as关键字SELECTStuNoAS学号,StuNameAS姓名,StuSexAS性别FROMStudentWHERE(StuAddress=广州)第6页/共36页2023/3/2574.1 T-SQL查询语句使用Select语句进行查询用空格SELECTStuNo学号,StuName姓名,StuSe
4、x性别FROMStudentWHERE(StuAddress=广州)用=号SELECT学号=StuNo,姓名=StuName,性别=StuSexFROMStudentWHERE(StuAddress=广州)第7页/共36页2023/3/2584.1 T-SQL查询语句使用Select语句进行查询查询空记录通过ISNULL、ISNOTNULL来判断是否为空SELECT学号=StuNo,姓名=StuName,性别=StuSexFROMStudentWHERE(StuAddress=ISNOTNULL)使用复合条件筛选记录例:筛选考试科目代号002为并且成绩大于70分的信息SELECTStuNo学号
5、,CourseNo课程号,Score成绩FROMStuScoreWHEREScore70ANDCourseNo=002ORDERBYCourseNo第8页/共36页2023/3/2594.1 T-SQL查询语句使用Select语句进行查询在查询中使用常量列例:在查询中添加一个常量列国家,列的值为“中国”SELECTStuNo学号,StuName姓名,StuSex性别,StuAddress地址,国家=中国FROMStudent在Student表中插入一列,列名为国家,列值为中国第9页/共36页2023/3/25104.1 T-SQL查询语句使用Select语句进行查询替换结果集中的数据例:根据学
6、生成绩,划分不同的等级。成绩大于85分,显示优秀;成绩小于60分显示不及格;其余的显示合格。使用CASE函数来实现。SELECTStuNo学号,CourseNo课程号,等级=CASEWHENScore=85THEN优秀WHENScore=60THEN合格ELSE不及格ENDFROMStuScore第10页/共36页2023/3/25114.1 T-SQL查询语句使用Select语句进行查询排序的使用例:由高到低显示学生的成绩信息SELECTStuNo学号,CourseNo课程号,Score成绩FROMStuScoreORDERBYScoreDESCn使用ORDERBY子句可以按一个或多个属性列
7、对数据进行排序。n当排序列包含空值(NULL)时,若使用ASC关键字,则排序列为空值的元组最后显示;若使用DESC关键字,则排序列为空值的元组最先显示。第11页/共36页2023/3/25124.1 T-SQL查询语句使用Select语句进行查询示例9:由高到低显示学生成绩信息(多列排序)SELECTStuNo学号,CourseNo课程号,Score成绩FROMStuScoreORDERBYScore,CourseNo在该查询中,系统先按照Score进行升序排序(关键字ASC省略),然后再按照CourseNo进行升序排序。当基于多个属性对数据进行排序时,出现在ORDERBY子句中的列的顺序是非
8、常重要的,因为系统是按照排序列的先后进行排序的。如果第一个属性相同,则依据第二个属性排序,如果第二个属性相同,则依据第三个属性排序,依此类推。另外,在执行多列排序时,每一个列都可以指定是升序还是降序。第12页/共36页2023/3/2513学生信息表Student(StuNo,StuName,StuDate,StuAddress,StuSex)选课成绩表:StuScore(StuNo,CourseNo,Score)科目表:Course(CourseNo,CourseName,Grade)1.在Student表中插入一条学生记录如下:学号S000088,姓名:王晓萌,性别:女。(在学生信息表中只
9、有StuNo,StuName不能为空,其他均可以是空值)。2.将StuScore表中CourseNo为C001且Score小于60分的记录的Score改为60分。3.将StuScore表中StuNo为S000010的成绩记录删除。4.删除StuScore表中所有成绩记录,并且删除后信息不能恢复5.在Course表中查询Grade等于3的课程信息的CourseNo,CourseName信息,在查询结果中将CourseNo更名为课程号,将CourseName更名为课程名,查询结果按照CourseNo降序排序第13页/共36页2023/3/25144.2 在查询中使用函数在查询中经常要对筛选的字段通
10、过函数来实现并做一些处理,T-SQL提供了大量,大概可以分为以下几类:字符串函数日期函数数学函数系统函数第14页/共36页2023/3/25154.2 在查询中使用函数字符串函数第15页/共36页2023/3/25164.2 在查询中使用函数字符串函数第16页/共36页2023/3/25174.2 在查询中使用函数日期函数第17页/共36页2023/3/25184.2 在查询中使用函数数学函数第18页/共36页2023/3/25194.2 在查询中使用函数数学函数n数学函数返回参加运算的数据的数值,如下面的检索语句,分别使用了求圆周率的PI函数、求正弦值的SIN函数、求指数的EXP函数、求幂值
11、的POWER函数等。SELECT PI(),S IN(PI()/2),COS(PI()/4),EXP(10),POWER(10,2)第19页/共36页2023/3/25204.2 在查询中使用函数系统函数第20页/共36页2023/3/25214.3 Top关键字的使用语法格式:TOPn从前向后返回n行数据TOPnPERCENT按照百分比返回指定数量的数据行说明:当在查询语句中使用了ORDERBY子句时,还经常在SELECT子句中使用TOP关键字。TOP关键字表示仅在结果集中从前向后列出指定数量的数据行。如果在使用TOP关键字的SELECT语句中没有使用排序子句,则只是随机地返回指定数量的数据
12、行。第21页/共36页2023/3/25224.3 Top关键字的使用例:查询班内前5个学生的信息。SELECTTOP(5)*FROMStudentORDERBYSno本查询先将结果集中的数据按Sno升序排序,然后取出前5个输出显示。例:查询成绩排名在前30的学生学号、科目和成绩。SELECTTOP30PERCENTStuNo,CourseNo,ScoreFROMStuScoreORDERBYScoreDESC本查询先将结果集中的数据按照Score降序排序,再从排序后的记录里取前30进行输出。第22页/共36页2023/3/25234.3 Top关键字的使用有的读者或许会问,如果设定列出5行数
13、据,但是第6行、第7行甚至更多行的数据如果和第5行一样的话,那么这些行的数据是否会显示?例如在【例11】中,若结果集列出了3行数据,假设第4行数据中Score值也是89的话,那不是就丢失了一部分可以使用的信息吗?要解决这个问题很简单,只需要在TOP子句后使用WITHTIES子句就可以了。例如同样在【例11】中,如果将SELECT子句改为:例11(改):查询成绩排名在前30的学生学号、科目和成绩。SELECTTOP30PERCENTWITHTIESStuNo,CourseNo,ScoreFROMStuScoreORDERBYScoreDESC第23页/共36页2023/3/25244.3 Top
14、关键字的使用在SQLServer2005中还可以用变量来限定显示记录的数量例:返回前3条学生信息DeclarenintSETn=3SElECTTOP(n)*FROMSTUDENT如果在TOP后接的是变量,必须用括号。第24页/共36页2023/3/25254.4 过滤重复记录DISTINCT关键字的使用语法格式DISTINCT列名,n说明:在SELECT子句中,可以通过使用ALL或DISTINCT关键字来控制查询结果集的显示。ALL关键字表示检索所有的数据,包括重复的数据行,DISTINCT关键字表示仅仅显示不重复的数据行,对于重复的数据行,则只显示一次。默认使用ALL关键字。一个SELECT
15、语句中DISTINCT只能出现一次,而且必须放在所有列之前第25页/共36页2023/3/2526一。一。查询考试信息SELECTStuNoAS学号FROMStuScore二。查询参加了考试的学生SELECTDISTINCTStuNoAS学号FROMStuScore4.4 过滤重复记录DISTINCT关键字的使用第26页/共36页2023/3/25274.5 计算列的使用查询数据时,经常需要对表中的数据计算后才能得到满意的结果,SQLServer在数据查询中提供了计算的能力例:在StuScore表中查询学号,课程号,成绩信息,并将所有人成绩减5分。SELECTStuNo学号,CourseNo课
16、程号,Score-5成绩FROMStuScore第27页/共36页2023/3/2528总结用SELECT语句从数据表中检索数据用户需要的数据通过给列起别名使得查询的信息更明确使用TOP关键字可以显示结果集中前n条记录使用DISTINCT可以消除结果集中重复的记录,使结果集中的记录具有唯一性。n用SELECT语句从数据表中检索数据用户需要的数据n通过给列起别名使得查询的信息更明确n使用TOP关键字可以显示结果集中前n条记录n使用DISTINCT可以消除结果集中重复的记录,使结果集中的记录具有唯一性。第28页/共36页2023/3/2529作业课后系统1-6题做在练习册上复习本章知识点预习第5章复杂查询第29页/共36页2023/3/25网络数据库SQLServer36感谢您的观看。第36页/共36页