数据库的连接和嵌套查询.ppt

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

第八章 数据库的连接 和嵌套查询 1.简单连接查询 2.外连接查询 3.简单嵌套查询 总纲 当需要获取的数据在多于两个表的时候,需要使用连接查询,连接查询按方式不同分为基本连接、内连接、外连接、交叉连接和集合连接5大类,大概17个小类。 基本连接: 在from子句中使用逗号(“,”)连接多个表的方式叫基本连接 简单的连接查询 已知学生表建表语句和添加数据语句如下: 示例:简单连接 已知成绩表建表语句和添加数据语句如下: 对两个表的单表查询结果如右图:在成绩表中只存储了学生的学号,而没有存储学生的其他信息。那么学员表与成绩表之间的关联只能通过学号(sid)这个字段完成。 如果需要将学员的基本信息和学员的考试成绩关联显示,需要以下SQL语句。连接查询的结果如右图所示: 示例:简单连接 外连接包括左外连接、右外连接和全外连接三种,也可以简称为左连接、右连接和全连接。 左外连接:left join … on 以左侧表为主表 右外连接:right join … on 以右侧表为主表 全外连接:full join … on 两个表同时全部显示。 具体语法:设表t1和t2如下图:,查询结果如右图: 外连接 当使用左外连接和右外连接时,如果增加其他条件,则只能对从表(即非主表)进行条件过滤。因为这两种连接方式一定会将主表的全部信息显示出来。 示例:外连接组合其他条件 如果使用全外连接,因为两个表均为主表身份,所以会全部显示出来,如果增加了其他条件只会影响连接条件(on关键字后面紧跟的条件为连接条件),这样可能会造成查询记录的增加。如下:造成了id为1的关联失败 在一个SELECT 语句的WHERE 子句或HAVING 子句中嵌套另一个SELECT 语句的查询称为嵌套查询。 嵌套查询通常是在一次查询不能满足条件的前提下使用的,子查询应使用最大范围的收敛方法,以减少外查询对内存的使用量。 嵌套查询 同样以学员表和成绩表为例。 例1:查询语文成绩大于85分的学员姓名。 分析:成绩表中存储了学员的成绩信息,但是不包含学员的基本信息(如姓名、年龄等), 分析结果如下: (1)先对achievements表进行查询,获取语文成绩大于85的学员学号。 (2)再根据(1)中的学号从student表中获取学员姓名。 语句如下: 示例:嵌套查询 例2:查询年龄小于21岁的学生的各科成绩 分析:学员表中存储了学生的年龄信息,但是没有存储学员的考试成绩, 分析结果如下: (1)先从student表中查询年龄小于21岁的学生编号。 (2)再根据学员编号从achievements表中获取成绩信息。 语句如下: 示例:嵌套连接 漫漫IT路, 你需要过来人指点!

文档评论(0)

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

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

1亿VIP精品文档

相关文档