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

* 例6-58使用左向外连接的查询结果 * 右向外连接 右向外连接以连接(JOIN)子句右侧的表为主表,主表中所有记录都将出现在结果集中。如果主表中的记录在左表中没有匹配的数据,则结果集中左表的列值为NULL。可以使用=*符号定义右向外连接。 * 例6-59 使用右向外连接从“院系”表和“学生”表中同时获取数据,查询所有学生的姓名和所在院系名称,其中“院系”表为主表。 SELECT t1.院系名称, t2.姓名 FROM 院系 t1, 学生 t2 WHERE t2.所属院系 =* t1.记录编号 还可以使用RIGHT OUTER JOIN或RIGHT JOIN关键字定义右向外连接。例如,上面的语句也可以写成: SELECT t1.院系名称, t2.姓名 FROM 学生 t2 RIGHT JOIN 院系 t1 ON t1.记录编号=t2.所属院系 * 例6-59使用右向外连接的查询结果 * 完整外部连接 完整外部连接包括连接表中的所有行,无论它们是否匹配。在SQL Server 2000中,还可以使用FULL OUTER JOIN或FULL JOIN关键字定义完整外部连接。 * 例6-60 使用完整外部连接从“院系”表和“学生”表中同时获取数据,查询所有学生的姓名和所在院系名称。 SELECT t1.院系名称, t2.姓名 FROM 学生 t2 FULL JOIN 院系 t1 ON t1.记录编号=t2.所属院系 ON子句用于指定两个表之间的连接关系。完整外部连接相当于左向外连接和右向外连接的并集。 * 例6-60完整外部连接执行结果 * 使用IS NULL和IS NOT NULL。 在使用外连接时,结果集中会出现一些值为NULL的记录。在查询条件中使用IS NULL或IS NOT NULL关键字,可以查询某字段值等于或不等于NULL的记录。 * 例6-61 使用外连接查询没有学生的院系。 SELECT t1.院系名称, t2.姓名 FROM 院系 t1 LEFT JOIN 学生 t2 ON t1.记录编号=t2.所属院系 WHERE t2.姓名 IS NULL * 3. 交叉连接 在交叉连接查询中,两个表中的每两行都可能互相组合成为结果集中的一行。交叉连接并不常用,除非需要穷举两个表的所有可能的记录组合。 【例】使用交叉连接从“院系”表和“学生”表中同时获取数据,查询所有学生的姓名和所在院系名称。 SELECT t1.院系名称, t2.姓名 FROM 学生 t2 CROSS JOIN 院系 t1 * 例6-62交叉连接执行结果 * 6.6.11 子查询 子查询就是在一个SELECT语句中又嵌套了另一个SELECT语句。在WHERE子句和HAVING子句中都可以嵌套SELECT语句。 * 1.使用IN关键字连接子查询 【例】查询和小赵在同一个班的所有学生姓名,可以使用以下命令: SELECT 姓名 FROM 学生 WHERE 班级 IN (SELECT 班级 FROM 学生 WHERE 姓名=小赵) * 2.使用等号连接子查询 【例】要显示软件系的所有学生信息,可以使用以下命令: SELECT * FROM 学生 WHERE 所属院系= (SELECT 记录编号 FROM 院系 WHERE 院系名称=软件系) * 3.使用EXISTS关键字连接子查询 【例】要显示软件系的所有学生信息,可以使用以下命令: SELECT * FROM 学生 WHERE EXISTS (SELECT * FROM 院系 WHERE 记录编号=学生.所属院系 AND 院系名称=软件系) EXISTS关键字用于检测子句的结果集是否为空。 * 6.6.12 合并查询 合并查询是将两个或更多查询的结果组合为单个结果集,该结果集包含联合查询中的所有查询的全部行。 使用UNION运算符组合两个查询的结果集的两个前提是: 所有查询结果中的列数和列的顺序必须相同; 对应列的数据类型必须兼容。 合并查询经常用来返回明细和统计信息。因为明细和统计信息需要分别统计,所以可以使用合并查询将它们统一到一个结果集中。 * 【例】 显示所有学生的入学成绩明细和总成绩统计,可以使用以下命令: SELECT 姓名, 性别, 入学成绩 FROM 学生 UNION SELECT 合计, NULL, SUM(入学成绩)

文档评论(0)

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

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

1亿VIP精品文档

相关文档