資料庫的多表聯結

2021-06-28 01:54:37 字數 1631 閱讀 2336

資料庫的聯結分為三種

1.內聯結:內連線查詢操作列出與連線條件匹配的資料行,它使用比較運算子比較被連線列的 

列值。內連線分三種:

1>

等值連線:在連線條件中使用等於號(=)運算子比較被連線列的列值,其查詢結 

果中列出被連線表中的所有列,包括其中的重複列。 

2>

不等連線:在連線條件使用除等於運算子以外的其它比較運算子比較被連線的 

列的列值。這些運算子包括》、>=、<=<、!>、!《和<>。 

3>

自然連線:在連線條件中使用等於(=)運算子比較被連線列的列值,但它使用選 

擇列表指出查詢結果集合中所包括的列,並刪除連線表中的重複列。

2.外聯結:

外連線,返回到查詢結果集合中的不僅包含符合連線條件的行,而且還包括左表(左

外連線或左連線))、右表(右外連線或右連線)或兩個邊接表(全外連線)中的所有資料行。

3.交叉聯結:

交叉連線不帶where 子句,它返回被連線的兩個表所有資料行的笛卡爾積,返回到 

結果集合中的資料行數等於第乙個表中符合查詢條件的資料行數乘以第二個表中符合查 

詢條件的資料行數

例,titles表中有6類圖書,而publishers表中有8家出版社,則下 

列交叉連線檢索到的記錄數將等於6*8=48行。

舉個例子簡單說明下:

建立兩張表student、gread

student                    gread

id      name         id        score

1        aa             1         60

2        bb             2         80

3        cc

內聯結:select  s.id,s.name,g.score from student s inner join gread g on s.id=g.id

結果為:   id   name       score

1     aa          60

2     bb          80

左外聯結:

select  s.id,s.name,g.score from student s left  join gread g on s.id=g.id

結果為:   id   name      score

1     aa         60

2     bb         80

3     cc         null

右外聯結:

select  s.id,s.name,g.score from student s right  join gread g on s.id=g.id

結果為:   id   name      score

1     aa         60

2     bb         80

交叉聯結:select type,pub_name from titles cross join publishers order by type

資料庫學習3聯結

前面我們說的都是在乙個表中的查詢操作。而就算在子查詢,也並沒有把多個表關聯起來,也實際上是對乙個表的單獨操作。而聯結 在很多地方稱為連線,其實是一樣的 聯結是利用sql的select能執行的最重要的操作。簡單地說,聯結是一種機制,用來在一條select語句中關聯表,因此稱之為聯結。使用特殊的語法,可...

MySQL資料庫 建立高階聯結

part 1 使用表別名 select code id,state from coder as c,git as d where c.id d.id 需要注意的是,只有where時候,才可以使用表別名。如上所示,我們的別名,除了用在列名和計算欄位外,我們還可以用在表的身上。我們這樣做有兩個理由 1....

資料庫多表連線

我今天學習了資料庫的多表連j 接,分別有內連線和左外連線還有右外連線,這三個連線是最基本的連線。1.內連線分為是三種 等值連線 是指表之間通過 等於 關係連線起來,產生乙個臨時表,然後對該臨時表進行處理後生成最終結果。其查詢結果中列出被連線表中的所有。2 不等值連線 是指表之間的連線關係不是 等於 ...