SG_007_CHAPTER 5

chenai79921發表於2009-10-15

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 column1column2

From table_1 LEFT OUTER JOIN table_2

On table_1.column1=table2.column2

左邊table_1返回所有資料。

Right Outer Joins

同上。

Full Outer Joins

例子:

Select column1column2

From table_1 FULL OUTER JOIN table_2

On table_1.column1=table2.column2

Select column1column2

From table_1 table_2

Where table_1.column1+=table2.column2

Union

Select column1column2

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部落格 ” ,連結:http://blog.itpub.net/11997930/viewspace-1027884/,如需轉載,請註明出處,否則將追究法律責任。

上一篇: 時間日期格式
下一篇: SG_007_CHAPTER 6
SG_007_CHAPTER 5
請登入後發表評論 登入
全部評論