第七章:高级查询.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
章 ;上节回顾;第七章:高级查询;本章目标;定 义:根据各个数据库表之间的逻辑关系从二个或多个数 据表中检索数据。 注 意: 所要连接的表必须拥有相同的字段值,且数据类型 似。 尽量在表的主键上的基础上,指定连接条件。 ;联接分类;本章目标;内连接概述;内连接…inner join… on…;内连接— …inner join…on…;多表连接;【分析案例】从yry数据库中查找小孩名、父亲名、母亲名及他们的电话 use yry select childs.[name],fathername,fathers.tel,mothername,mothers.tel from childs join fathers on fathername=fathers.[name] join mothers on mothername=mothers.[name] go;多表内联接案例;内连接…inner join… on…;多表查询方式(一) join……on……;方法二: select os.orderid,customerid from orders os , [order details] od where os.orderid=od.orderid and productid=23 and quantity20 go ;自联接(特殊的内联接);外联接;语法: select 字段名1,字段名2……字段n from 表1 left outer join 表2 ----表1 right outer join 表2 ----表1 full outer join 表2 go;左/右/全外联接分析;【例】查找所有学生情况及他们选修的课程号,若学生未选修任何课程,也要包括其情况。 use xscj select xs.*,课程号 from xs left outer join xs_kc ----right outer join xs_kc ----full outer join xs_kc on xs.学号=xs_kc.学号 go ;左/右/全外联接案例;cross join交叉连接(乘集);【例】返回xs表和kc表所有可能记录的组合 use xscj select 学号,姓名,课程号,课程名 from xs cross join kc go  *结果集的条数为两张表记录条数的乘积;理解联接查询的类型和定义 掌握内/外/自/交叉连接* 掌握聚合函数的用法  理解Group By含义 *;聚合函数概述;功能:返回数字表达式中所 有值的和,用来求和的 表达 式通常是字段名称或 包含字段名称的表 达式。 【例】求选修101课程的学生的总成绩。 use xscj select sum(成绩) as ’课程101总成绩’ from xs_kc where 课程号=‘101’ go;聚合函数— sum(列名);功能:返回数字表达式中所有值 的平均值,用来求平均 值的表达式通常是字段名称或包含字段名称的表 达式。 【例】求选修101课程的学生的平均成绩。 use xscj select avg(成绩) as ’课程101平均成绩’ from xs_kc where 课程号=‘101’ go ;聚合函数—avg(列名);聚合函数— count(*); 功能:统计表中有多少行记录(不包括某列的行值为空) 【例】求选修了课程的学生总人数 use xscj select count(distinct 学号) as‘选修课程总人数’ from xs_kc go;count(列名)与count(*)的区别: count(列名)函数将忽略对象中的空值,而count(*)函数将所有符合条件的记录都计算在内 在使用count(列名)函数时,可以同时使用可选关键字 distinct来去掉重复值,而使用count(*)函数

文档评论(0)

勤能补拙 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档