ITPub博客

首页 > 应用开发 > IT综合 > SG_007_CHAPTER 5

SG_007_CHAPTER 5

原创 IT综合 作者:chenai79921 时间:2009-10-15 13:40:31 0 删除 编辑

Simple Joins:

使用符号‘=’相连2个表。属于内连接(inner join),因为只返回满足连接条件的数据。

Complex Joins:

除了在where中使用join 条件,还可以在where中添加限制条件。

注意:当alias name定义好之后,只能使用alias name。

Using ANSI Syntax:

NATURAL [INNER] JOIN

这种自然连接,根据2个表中具有同样名称的column,来连接多个表。

等同于使用符号‘=’,来连接表。

注意不能使用qualify the column name。

如果使用select * ,common columns只列出一个。

[INNER] JOIN
USING ()

指定某一个column name来连接多个表。

不可以qualify table name 或者table alias

[INNER] JOIN
ON

如果多个表之间,没有相同名字的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:

cross join

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)

[@more@]

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/11997930/viewspace-1027884/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 时间日期格式
下一篇: SG_007_CHAPTER 6
请登录后发表评论 登录
全部评论
  • 博文量
    19
  • 访问量
    14160