《SQL Server 数据库案例教程》课件第5章复杂查询_第1页
《SQL Server 数据库案例教程》课件第5章复杂查询_第2页
《SQL Server 数据库案例教程》课件第5章复杂查询_第3页
《SQL Server 数据库案例教程》课件第5章复杂查询_第4页
《SQL Server 数据库案例教程》课件第5章复杂查询_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

本章目标使用LIKE进行模糊查询掌握聚合函数的使用使用GROUPBy进行分组查询掌握多表关联查询模糊查询-LIKE示例:查询姓名叫”王**军“的学生信息通配符:%:包含零个或多个字符的任意字符串_下划线:任何单个字符[]:指定范围[a-f]或集合[acdef]中的任意单个字符[^]:不属于指定范围([a-f])或集合([abcdef])的任何单个字符。提问:在author表中查找以de开始并且其后的字母不为l的所有作者的姓氏SELECT*FROMSTUDENTWHEREStuNameLIKE‘王_军‘模糊查询-BETWEEN示例:查询出生日期在1980-1982年的学生信息

提问:查询出生日期不在1980-1982年的学生信息等价于SELECT*FROMSTUDENTWHEREStuDateBETWEEN'1980'AND'1982‘SELECT*FROMSTUDENTWHEREStuDate>='1980-01-01'ANDStuDATE<='1982-01-01’聚合函数提问:想知道班级学员的总分,平均分等统计数据该怎么实现?求最小值MIN求最大值MAX求总和SUM统计列中的数据项数COUNT(列名)统计记录行数COUNT(*)求平均值AVG描述函数名

聚合函数示例

示例1:求全班的平均分

提问:求全班的最高分和最低分示例2:统计全班的学生人数SELECTAVG(Score)AS平均成绩FROMStuScoreSELECTCOUNT(*)总人数

FROMStudent提问:统计参加考试科目’001’的人数分组查询

提问:统计全班每个学生的平均成绩该如何实现?GROUPSELECTStuNo学号,AVG(Score)平均分FROMStuScoreGROUPBYStuNo提问:如何统计全班各门课程的平均成绩呢?HAVING过滤提问:查询全班平均成绩大于75分的学生信息SELECTStuNo学号,AVG(Score)平均分FROMStuScoreGROUPBYStuNoHAVINGAVG(Score)>75如果将HAVING改为WHERE会怎么样?关联查询提问:用户需要查看学生的详细信息以及成绩信息?所需要的数据分别在两个表中存储,如何同时访问这两个表的数据?多表关联分类内联接(INNERJOIN)外联接——左外联接(LEFTJOIN)——右外联接(RIGHTJOIN)——完整外联接(FULLJOIN)自联接(CROSSJOIN)内联接一.传统语法SELECT列名,,,,FROM表名,,,,WHERE条件二.SQL联接SELECT列名FROM表名[INNER]JOIN表名[JOIN表名....]ON连接条件WHERE条件内联接SELECT*FROMStudentA,StuScoreBWHEREA.StuNo=B.StuNoSELECT*FROMStudentINNERJOINStuScoreCourseONStudent.StuNo=Course.StuNo内联接-多表关联示例:查询参加了考试的学生信息,成绩信息和具体科目信息

SELECTA.StuNo学号,A.StuName姓名,A.StuSex性别,A.StuDate出生日期,A.StuAddress地址,C.CourseNo课程号,C.CourseName,B.Score成绩FROMStudentAJOINStuScoreBONA.StuNo=B.StuNoJOINCourseCONB.CourseNo=C.CourseNo传统语法如何写?左外联接SELECTA.StuNo学号,A.StuName姓名,A.StuSex性别,A.StuDate出生日期,A.StuAddress地址,B.CourseNo课程号,B.Score成绩FROMStudentALEFTJOINStuScoreBONA.StuNo=B.StuNo提问:这种写法返回结果相同吗SELECTB.StuNo学号,B.StuName姓名,B.StuSex性别,B.StuDate出生日期,V.StuAddress地址,A.CourseNo课程号,A.Score成绩FROMStuScoreALEFTJOINStudentBONA.StuNo=B.StuNo右外联接提问:以下SQL语句的输出结果是什么?SELECTA.StuNo学号,A.StuName姓名,A.StuSex性别,A.StuDate出生日期,A.StuAddress地址,B.CourseNo课程号,B.Score成绩FROMStudentARIGHTJOINStuScoreBONA.StuNo=B.StuNo完全外联接示例:查询学生信息以及成绩信息SELECTA.StuNo学号,A.StuName姓名,A.StuSex性别,A.StuDate出生日期,A.StuAddress地址,B.CourseNo课程号,B.Score成绩FROMStudentAFULLJOINStuScoreBONA.StuNo=B.StuNo提问:上述SQL语句返回多少条记录?自联接

提问:查询员工信息以及经理的信息SELECTA.*,B.ENameASMgrNameFROMEmployeeAJOINEmployeeBONA.Mgr=B.EmpNo总结模

温馨提示

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

评论

0/150

提交评论