- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第五章 复杂查询 本章目标 使用LIKE进行模糊查询 掌握聚合函数的使用 使用GROUP By进行分组查询 掌握多表关联查询 模糊查询-LIKE 示例:查询姓名叫”王**军“的学生信息 通配符: %:包含零个或多个字符的任意字符串 _下划线 :任何单个字符 [] :指定范围[a-f]或集合[acdef]中的任意单个字符[^]:不属于指定范围 ([a-f]) 或集合 ([abcdef]) 的任何单个字符。 提问:在author表中查找以 de 开始并且其后的字母不 为l 的所有作者的姓氏 模糊查询-BETWEEN 示例:查询出生日期在1980-1982年的学生信息 提问:查询出生日期不在1980-1982年的学生信息 聚合函数 提问:想知道班级学员的总分,平均分等统计数据该怎么实现? 聚合函数示例 示例1:求全班的平均分 提问:求全班的最高分和最低分 示例2:统计全班的学生人数 分组查询 提问:统计全班每个学生的平均成绩该如何实现? GROUP HAVING过滤 提问:查询全班平均成绩大于75分的学生信息 关联查询 提问:用户需要查看学生的详细信息以及成绩信息?所需要的数据分别在两个表中存储,如何同时访问这两个表的数据? 多表关联分类 内联接(INNER JOIN) 外联接 ——左外联接(LEFT JOIN) ——右外联接(RIGHT JOIN) ——完整外联接(FULL JOIN) 自联接(CROSS JOIN) 内联接 一.传统语法 SELECT 列名,,,, FROM 表名,,,, WHERE 条件 二.SQL联接 SELECT 列名 FROM 表名 [INNER] JOIN 表名[JOIN 表名....] ON 连接条件 WHERE 条件 内联接 内联接-多表关联 示例:查询参加了考试的学生信息,成绩信息和具体科目信息 左外联接 右外联接 完全外联接 自联接 总结 模糊查询用LIKE,BETWEEN AND关键字 对数据进行统计使用SQL内置的聚合函数 对数据进行分组用GROUP BY 查询的数据来自于多个表用关联查询 内联接筛选多表中完全匹配的行 左外联接以左表为主筛选数据 右外联接以右表为主筛选数据 内联接将表自身通过别名关联 * SELECT * FROM STUDENT WHERE StuName LIKE ‘王_军‘ 等价于 SELECT * FROM STUDENT WHERE StuDate BETWEEN 1980 AND 1982‘ SELECT * FROM STUDENT WHERE StuDate=1980-01-01 AND StuDATE=1982-01-01’ 求最小值 MIN 求最大值 MAX 求总和 SUM 统计列中的数据项数 COUNT(列名) 统计记录行数 COUNT(*) 求平均值 AVG 描述 函数名 SELECT AVG(Score) AS 平均成绩 FROM StuScore SELECT COUNT(*) 总人数 FROM Student 提问:统计参加考试科目’001’的人数 SELECT StuNo 学号, AVG(Score) 平均分 FROM StuScore GROUP BY StuNo 提问:如何统计全班各门课程的平均成绩呢? SELECT StuNo 学号, AVG(Score) 平均分 FROM StuScore GROUP BY StuNo HAVING AVG(Score)75 如果将HAVING改为WHERE会怎么样? SELECT * FROM Student A , StuScore B WHERE A.StuNo=B.StuNo SELECT * FROM Student INNER JOIN StuScore Course ON Student.StuNo=Course.StuNo SELECT A.StuNo 学号, A.StuName 姓名,A.StuSex 性别, A.StuDate 出生日期,A.StuAddress 地址, C.CourseNo 课程号, C.CourseName,B.Score 成绩 FROM Student A JOIN StuScore B ON A.StuNo=B.StuNo JOIN Course C ON B.CourseNo=C.CourseNo 传统语法如何写? SELECT A.StuNo 学号, A.StuName 姓名,A.StuSex 性别, A.StuDate 出生日期,A.StuAddress 地址, B.Course
您可能关注的文档
最近下载
- 银行行业央国企改革专题研究:银行股如何开展市值管理.pdf VIP
- 医学影像与卫生法规.pptx VIP
- 银河证券-市值管理政策解读系列:市值管理政策密集出台,关注十大要点.pdf VIP
- 新青岛版六年级上册科学7秋季星空(动画版).pptx VIP
- DBJ61T75-2013陕西省岩棉板外墙外保温系统应用技范.pdf
- 20220201-PICS GMP Guide (Introduction)(PICS GMP 指南简介)【中英对照】..pdf VIP
- 服务器及软件维护服务服务器及软件维护服务方案.doc VIP
- 期末复习主题班会.ppt VIP
- 中国古代文学苏轼专题.ppt VIP
- 布病布鲁氏杆菌病.ppt VIP
文档评论(0)