第三次:多表连接查询课件.ppt

  1. 1、本文档共29页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第三次 多表联结查询 本节目标 了解联结查询的种类 掌握内联结查询 掌握常用聚合函数 联 接 (join) 定义:联 接是把两个表中行按照给定的条件拼接而成的新表 两个表联结最常用的条件是两个表的默认列值相等,这样的联结称为等值联结。 自然联结:自然联结运算要求两个表有共同的属性。其运算的结果是在参与操作两个表的共同属性上进行等值联结后在去除重复属性后所得的新表。 自然联结 联接分类 联接查询分为以下几类: 内联接:基本内联接、多表联接、自联接 外联结:左外联接、右外联接、全外联接、交叉联接 联结查询 联结两大形式: 符合SQL标准联结谓词表示形式(where) T-SQL扩展的使用关键字的表现形式(join) 联结谓词 例如:从XSCJ数据库查找每个学生情况以及选修的课程情况 Select XS.*,XS_KC.* from xs,xs_kc where Xs.学号=xs_kc.学号 查找选修了0101门课程且成绩在80分以上的学生姓名以及成绩 select sname,xs_kc.score from xs,xs_kc where xs.sno=xs_kc.sno and cno = 0101 Join联结 内联结(INNER JOIN) 使用比较运算符进行表间某(些)列数据的比 较操作,并列出这些表中与联结条件相匹配 的数据行。 内联结 内联结 (inner) join 例1:查找学生数据库中每个学生的情况以及选修课情况 Select * from xs inner join xs_kc on xs.学号=xs_kc.学号 说明:on指定两个表合并的条件 例:查找选修了0102课程且成绩在80分以上的学生姓名和成绩 select xs.sno,sname,cno,xs_kc.score from xs inner join xs_kc on xs.sno = xs_kc.sno and cno = 0102 and xs_kc.score80 与谓词联结是一样的结果 多表内联接案例 【例】从数据库xscj中查询学生的姓名、课程名和成绩 select 姓名,课程名,成绩 from xs join xk on xs.学号=xk.学号 join kc on kc.课程号=xk.课程号 外联结 左外联结 右外联结 全外联结 与内联结不同的是,外联结不只列出与联结条件相匹配的行,而是列出左表(左外联结时)、右表(右外联结时)或两个表(全外联结时)中所有符合有哪些信誉好的足球投注网站条件的数据行。 外联结 outer join 左外联结 left (outer) join 右外联结 right(outer) join 完全联结 full (outer) join select 字段名1,字段名2……字段n from 表1 left outer join 表2 on 联结条件 ----表1 right outer join 表2 on ----表1 full outer join 表2 on 左外联结 left outer join 查询结果中除包含满足条件的行外,还包含左表的所有行 例: 查找所有学生情况和他们的选修课号,若学生没有选修任何课程,也要包含在其中 select xs.*,xs_kc.cno from xs left outer join xs_kc on xs.sno = xs_kc.sno 右外联结 right outer join 查询结果中除包含满足条件的行外,还包含右表的所有行 例:查找被选修了的课程的选修情况和所有开设的课程名 select cno,xs.* from xs right outer join xs_kc on xs.sno = xs_kc.sno order by cno 完全联结full (outer) join 全外联结,结果集中除了包括满足联结条件的行外,还包括两个表的所有行。 cross join交叉联结(乘集) 功能: 交叉联结将从被联结的表中返回所有可能的记录组合(如:一个表8条记录,另一个表9条记录,结果将返回72条 记录)。一般用于数据库创建测试数据,或为清单及企业模版创建所有可能的组合数据。 语法: select 字段1,字段2,…… from 表1 cross join 表2 cross join交叉联接(乘集) 【例】返回xs表和kc表所有可能记录的组合 select 学号,姓名,课程号,课程名 from xs cross join kc --提示cross join可以基于两个以上的表 例:列出学生所有可能的

文档评论(0)

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

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

1亿VIP精品文档

相关文档