[第五章SQL高级查询和视图.ppt

  1. 1、本文档共70页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[第五章SQL高级查询和视图

第五章  高级查询 回顾 指出下列语句的错误: 回顾 目标 掌握模糊查询 掌握聚合函数 掌握分组汇总 掌握多表联接查询 掌握简单子查询的用法 掌握IN子查询的用法 掌握EXISTS子查询的用法 应用T-SQL进行综合查询 SELECT语句的语法形式 SELECT [ALL|DISTINCT] 字段名列表[AS 标题名] [INTO [TABLE|CURSOR]新表名] FROM [数据库名1.]表1[AS表1的别名][, [数据库名2.]表2[AS表2的别名][,…]] [WHERE 筛选条件] [GROUP BY 分组表达式] [HAVING 分组条件] [ORDER BY 排序表达式 [ASC|DESC]] (1)SELECT子句列出所有要求SELECT语句查询的数据项,如指定AS,输出以指定的标题名作为字段名输出。如指定INTO新表名,则将查询的结果作为新表保存; (2)FROM子句列出包含所要查询数据的表; (3)WHERE子句提供SQL只查询某些行的数据,也就是执行查询的条件; (4)GROUP BY用以指定汇总查询,即不是对每一行产生一个查询结果,而是行记录进行分组,再对每一组产生一个汇总结果; (5)HAVING子句告诉SQL只产生由GROUP BY得到的某些组的结果; (6)ORDER BY子句将查询结果按照一列或多列中的数据排序。 5.1模糊查询—LIKE 查询时,字段中的内容并不一定与查询内容完全匹配,只要字段中含有这些内容 模糊查询—IS NULL 把某一字段中内容为空的记录查询出来 模糊查询—BETWEEN 把某一字段中内容在特定范围内的记录查询出来 模糊查询—IN 把某一字段中内容与所列出的查询内容列表匹配的记录查询出来 课堂练习 查询教师表teacher中职称为教授、副教授的记录 查询student表中年龄在20到25岁之间的记录 提示:year(getdate)-year(birth)算出年龄。Between and 查询student表中姓‘李’的记录 问题 5.2聚合函数 SQL语言支持五个集合函数 : 集合函数是作用于一组值的函数,而不是只作用于一个值上面的函数 。 所有集合函数可以操作一个变量,这个变量可以是列或表达式(惟一的例外是COUNT 函数的第二种形式:COUNT(*)) 每个集合函数的结果是个常量,它显示在结果中不同的列上 问题 5.3分组汇总 命令格式: GROUP BY 分组表达式 HAVING 分组条件 说明: 1) 分组表达式:一般为字段名,对指定的字段进行分组。  2)分组条件:对分组汇总后数据进入结果集的筛选条件,一般为集合函数或常量. ①不带HAVING的GROUP BY子句 GROUP BY子句将一列或多列定义为一组,按组输出查询结果。 GROUP BY子句可以统计每一门课的平均绩或者某个人的所有课的总成绩 【例】统计每个人的平均成绩。 注意事项 SQL为每个定义的组产生一个列值,每个组只返回一行,不返回详细信息。 如果包括WHERE子句,VFP只分组统计满足WHERE条件的行。 在包含GROUP BY子句的查询语句中,SELECT子句后的所有字段列表,除集合函数外,都应包含在GROUP BY子句中,否则将出错。如上例中,只能是’student_id’.否则将出错。 不要在含有空值的列上使用GROUPBY子句,因为空值将作为一个组来处理。 分组查询—思考 ②带HAVING的GROUP BY子句 HAVING子句定义应用到分组行中的条件,HAVING子句对分组行的意义与WHERE子句对每个行的意义是相同的。 【例】 查询平均成绩大于80学生的学号和平均成绩。 分组查询—对比 分组查询—思考 5.4多表联结查询—问题 多表联结查询—分类 内联结(INNER JOIN) 外联结 ——左外联结 (LEFT JOIN) ——右外联结 (RIGHT JOIN) ——完整外联结(FULL JOIN) 交叉联结(CROSS JOIN) 内联结 内连接(INNER JOIN):内连接返回的结果集中只包括满足连接条件的行。 例:查询所有学生的姓名、课程号和成绩 内联结-1 内联结-2 基于WHERE子句的内连接语法形式 三表联结 左外联结 右外联结 课堂练习 1、查询每个老师的部门名称和姓名 2、查询部门名称为‘计算机科学’的所有老师名单。 提示:部门名称在department表 5.5子查询 什么是子查询 什么是子查询 使用子查询替换表连接3-1 使用子查询替换表连接3-2 使用子查询替换表连接3-3 IN子查询 4-1 IN子查询 4-2 IN子查询 4-3 IN子查

文档评论(0)

wu12youli + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档