- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 例3-33 统计各职称的教师人数。结果按人数降序排列。 SELECT职称,COUNT(*) AS总人数 FROM 教师信息 GROUP BY 职称 ORDER BY 2 3.8 SQL查询 3.8.3 单表查询 4.分组查询 * 3.8 SQL查询 3.8.3 单表查询 4.分组查询 例3-35 查询选课门数在3门以上(含3门)的学生学号及平均成绩。 分析:对分组后数据进行筛选,条件是COUNT(*)=3。 SELECT学号,AVG(成绩) AS 平均成绩 FROM 学生成绩 GROUP BY学号 HAVING COUNT(*)=3 * 3.8 SQL查询 3.8.4 多表查询 1. Access表间联接查询的类型 两张或两张以上的表进行联接查询时,根据建立联接的规则不同,会生成不同的查询结果。Access支持3种表间联接规则:INNER JOIN(内部联接)、LEFT JOIN(左联接,又称左外部联接). RIGHT JOIN(右联接,又称右外部联接)。 * 3.8 SQL查询 3.8.4 多表查询 1. Access表间联接查询的类型 ①使用INNER JOIN…ON子句实现,格式为: SELECT目标列FROM表名1 INNER JOIN表名2ON表名l.字段名l=表名2.字段名2 ②使用WHERE子句实现,格式为: SELECT目标列FROM表名1,表名2 WHERE表名1.字段名1=表名2.字段名2 从相关联的两个表中选取满足联接条件的记录,按联接条件联接成新记录输出,即查询结果中只包含两个表中都有的记录。 * 2.两张表的联接查询 3.8 SQL查询 3.8.4 多表查询 例3-40 查询所有学生的学号、姓名、所修课程的课程编号和所得分数。 方法一: SELECT 学生信息.学号,姓名,课程号,成绩 FROM 学生信息,学生成绩 WHERE 学生信息.学号=学生成绩.学号 方法二: SELECT 学生信息.学号,姓名,课程号,成绩 FROM 学生信息 JOIN 学生成绩 ON 学生信息.学号=学生成绩.学号 * 3.8 SQL查询 3.8.4 多表查询 3.两张以上表间的联接查询 例3-42 查询所有学生的姓名、所修课程的课程名称和分数在85分以上的所得分数。 分析:本例所需的查询字段来自“学生信息”、“学生成绩”和“课程信息”3张表,问题的关键是如何同时构造两个关联条件。按上面的语法格式,在WHERE子句中构造“学生信息.学号=学生成绩.学号AND 课程信息.课程编号=学生成绩.课程编号”即可。命令为: * 3.8 SQL查询 3.8.4 多表查询 3.两张以上表间的联接查询 例3-42 查询所有学生的姓名、所修课程的课程名称和分数在85分以上的所得分数。 SELECT 姓名,课程名,成绩 FROM 学生信息,学生成绩,课程信息 WHERE 学生信息.学号=学生成绩.学号 AND 课程信息.课程号=学生成绩.课程号 AND 成绩85 * 3.8 SQL查询 3.8.5 嵌套查询 嵌套查询是将一个SELECT语句包含在另一个SELECT语句的WHERE子句中,嵌套在内层的查询称为子查询。子查询(内层查询)的结果作为建立其父查询(外层查询)的条件,因此,子查询的结果必须具有确定的值。 例3-43 查询“刘大刚”同学所修课程的“课程编号”及“成绩” SELECT 学号,课程号,成绩 FROM 学生成绩 WHERE 学号= (SELECT 学号 FROM 学生信息 WHERE 姓名=”刘大刚”) * 例3-44 查询课程表中,没有学生选修的课程名称。 3.8 SQL查询 3.8.5 嵌套查询 SELECT 课程名 FROM 课程信息 WHERE 课程号 NOT IN (SELECT DISTINCT 课程号 FROM 学生成绩) 例:创建子查询,查询并显示“学生成绩”中计算机成绩低于平均分的学生记录。 * 3.8 SQL查询 3.8.6 合并查询 在SQL中,可以将两个SELECT语句的查询结果通过并运算(UNION)合并为一个查询结果。进行合并查询时,要求两个查询结果具有相同的字段数,并且对应字段的数据类型也必须相同。 例3-45 查询1985年以前出生和1989年以后出生的学生信息。 SELECT 学号,姓名,性别,出生日期 FROM 学生信息 WHERE YEAR(出生日期)1985 UNION SELECT 学号,姓名,性别,出生日期 FROM 学
文档评论(0)