- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
sql-多表查询
多表查询 目标 通过本章学习,您将可以: 使用等值和不等值连接在SELECT 语句中查询多个表中的数据。 使用外连接查询不满足连接条件的数据。 使用自连接。 从多个表中获取数据 笛卡尔积 笛卡尔积会在下面条件下产生: 省略连接条件 连接条件无效 所有表中的所有行互相连接 为了避免笛卡尔积, 可以在 WHERE 加入有效的连接条件。 笛卡尔积 连接的类型 Cross joins Natural joins Using clause Full or two sided outer joins Arbitrary join conditions for outer joins Equijoin(相等连接) Non-equijoin(不等连接) Outer join(外连接) Self join(自连接) Oracle 的连接 使用连接在多个表中查询数据。 在 WHERE 字句中写入连接条件。 在表中有相同列时,在列名之前加上表名前缀。 等值连接 等值连接 其他的多个连接条件使用 AND 操作符 区分重复的列名 使用表名前缀在多个表中区分相同的列。 使用表名可以提高效率。 在不同表中具有相同列名的列可以用别名加以区分。 表的别名 使用别名可以简化查询。 使用表名前缀可以提高执行效率。 连接多个表 连接 n个表,至少需要 n-1个连接条件。 例如:连接三个表,至少需要两个连接条件。 非等值连接 非等值连接 外连接 外连接语法 使用外连接可以查询不满足连接条件的数据。 外连接的符号是 (+)。 外连接 自连接 自连接 使用SQL: 1999 语法连接 使用连接从多个表中查询数据: CROSS JOIN 使用CROSS JOIN 子句使连接的表产生叉积。 叉积和笛卡尔积是相同的。 自然连接 NATURAL JOIN 子句,会以两个表中具有相同名字的列做为条件创建等值连接。 在表中查询所有满足等值条件的数据。 如果只是列名相同而数据类型不同,则会产生错误。 自然连接 使用 USING 子句创建连接 在NATURAL JOIN 子句创建等值连接时,如果有多个名字相同,数据类型不同的列,那么可以使用 USING 子句指定等值连接中需要用到的列。 使用 USING 可以在有多个列满足条件时进行选择。 不要给选中的列使用表名前缀或别名。 NATURAL JOIN 和 USING 子句经常同时使用。 USING 子句 使用ON 子句创建连接 自然连接中是以具有相同名字的列为连接条件的。 可以使用 ON 子句指定额外的连接条件。 这个连接条件是与其它条件分开的。 ON 子句使语句具有更高的易读性。 ON 子句 使用ON 子句创建多表连接 内连接 与 外连接 在SQL: 1999中,内连接只返回满足连接条件的数据。 两个表在连接过程中除了返回满足连接条件的行以外还返回左(或右)表中不满足条件的行 ,这种连接称为左(或右) 外连接。 两个表在连接过程中除了返回满足连接条件的行以外还返回两个表中不满足条件的行 ,这种连接称为满 外联接。 左外连接 右外连接 满外连接 增加连接条件 SELECT e.last_name, e.department_id, d.department_name FROM employees e LEFT OUTER JOIN departments d ON (e.department_id = d.department_id) ; … SELECT e.last_name, e.department_id, d.department_name FROM employees e RIGHT OUTER JOIN departments d ON (e.department_id = d.department_id) ; … SELECT e.last_name, e.department_id, d.department_name FROM employees e FULL OUTER JOIN departments d ON (e.department_id = d.department_id) ; … SELECT e.employee_id, e.last_name, e.department_id, d.department_id, d.location_id FROM employees e JOIN departments d ON (e.department_id = d.department_id) AND e.manager_id = 149 ; Schedule: Timing Topic
有哪些信誉好的足球投注网站
文档评论(0)