首页 > 应用开发 > IT综合 > SG_007_CHAPTER 5
Simple Joins:
使用符号‘=’相连2个表。属于内连接(inner join),因为只返回满足连接条件的数据。
Complex Joins:
除了在where中使用join 条件,还可以在where中添加限制条件。
注意:当alias name定义好之后,只能使用alias name。
Using ANSI Syntax:
这种自然连接,根据2个表中具有同样名称的column,来连接多个表。 等同于使用符号‘=’,来连接表。 注意不能使用qualify the column name。 如果使用select * ,common columns只列出一个。 指定某一个column name来连接多个表。 不可以qualify table name 或者table alias 如果多个表之间,没有相同名字的column name。或者想自定义连接条件,那么可以使用join on。同样可以使用qualify column name 或者alias name。 如果2个表中的column名是一样的,那么必须qualify column name。 Multi-Table Joins:加入多个条件,多表连接。 Cartesian Joins: 尽量避免笛卡尔连接,一般有n个表,至少保持n-1个 Using ANSI Syntax: Outer Joins: 外连接的作用就是返回表中的所有条目数据,即使这些数据不符合条件。 (+)符号的那一边返回符合条件的条目语句。另一边返回所有数据。 注意:若where 中的条件,A表使用了(+),那么where中涉及A表的另外一些约束也必须(+),否则(+)将被忽略。 不能使用or或者in ,与(+)联用。 Using ANSI Syntax: Left Outer Joins: 例子: Select column1,column2 From table_1 LEFT OUTER JOIN table_2 On table_1.column1=table2.column2 左边table_1返回所有数据。 Right Outer Joins: 同上。 Full Outer Joins: 例子: Select column1,column2 From table_1 FULL OUTER JOIN table_2 On table_1.column1=table2.column2 或 Select column1,column2 From table_1, table_2 Where table_1.column1(+)=table2.column2 Union Select column1,column2 From table_1, table_2 Where table_1.column1=table2.column2(+) 默认都是inner类型,若定义outer join,那么必须明确LEFT,RIGHT,FULL Other Multiple-Table Queries: Self-joins: 自连接可以使用ANSI syntax , 只能使用JOIN ..ON syntax 注意:NATURAL JOIN 和 JOIN ...USING 不能使用。 Nonequality Joins: 大于号,小于号连接表。 Using Set Operators: Union:返回任意结果 Union all:返回所有重复结果 Intersect:返回2个查询结果的重复记录。 Minus:返回一个,但不返回另一个。 Subqueries: 最内层子查询最先执行。 From中可以包含inline views Single-Row Subqueries: 例子:在子查询中使用max(), Multiple-Row Subqueries: 例子:select column From table Where column in (select column1 from table2 where column2=’111’) Correlated Subqueries: 见http://chenai79921.itpub.net/post/40195/490991 Scalar Subqueries: 不可以在group by或者having 语句中使用。 例子: Select (Scalar subqueries) From table Where (Scalar subqueries) Order by (Scalar subqueries)
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/11997930/viewspace-1027884/
,如需转载,请注明出处,否则将追究法律责任。
NATURAL [INNER] JOIN
[INNER] JOIN
USING (
[INNER] JOIN
ON
cross join