MySQL資料庫 建立高階聯結

2021-08-13 19:27:31 字數 1328 閱讀 3212

part 1 使用表別名

select code_id,state from coder as c,git as d where c.id = d.id ;
需要注意的是,只有where時候,才可以使用表別名。

如上所示,我們的別名,除了用在列名和計算欄位外,我們還可以用在表的身上。

我們這樣做有兩個理由:1.縮短sql語句 2.允許在單挑select語句中多次使用相同的表 。

part 2 使用不同型別的聯結 之 自聯結

目前為止,我們使用的都是稱為內部聯結 或 等值聯結 的簡單聯結。 現在來看三種其他的聯結,分別是自聯結,自然聯結,外部聯結。

我們先來介紹自聯結:

select c.coder_name from coder as c,git as g where c.coder_name = g.git_name;
看見沒,在前面,也使用了表別名。 這裡我們通過大量實驗得出,使用自聯結作為外部語句來代替子查詢往往會起到處理結果優化的效果。但是這個也不絕對,應該多做實驗來驗證。

part 3 自然聯結

無論何時對錶進行聯結,應該至少有乙個列出現在不止乙個表中(被聯結的列)。標準的聯結返回所有資料,甚至相同的列多次出現。自然聯結排除多次出現,是每個列只返回一次。

自然聯結的例子如下:

select

c.*,g.state

from

coder as c,

git as g

where

c.name = g.name;

// 這**好看吧 哈哈 用了美化效果的~

事實上,迄今位置我們建立的每乙個內部聯結都是自然聯結,很可能我們永遠都不會用到不是自然聯結的內部聯結。

part 4 外部聯結

select coder.name,coder.code_id,git.state from coder left

outer

join git on coder.name = git.name;

上面寫的語句就是外部聯結,類似於我們上一章看到的內部聯結,這條select語句只用了關鍵字 outer join 來指定聯結的型別(而不是在where子句中執行),類似於自然聯結的設定 注意語句中的 left outer join … on 。這裡 left 表示的是 關聯那一邊的表的所有行! 這裡用的是left 就是 coder!

mysql資料庫高階 mysql資料庫高階

一 索引 索引,是資料庫中專門用於幫助使用者快速查詢資料的一種資料結構。類似於字典中的目錄,查詢字典內容時可以根據目錄查詢到資料的存放位置,然後直接獲取即可。分類 普通索引 唯一索引 全文索引 組合索引 主鍵索引 1 普通索引 普通索引僅有乙個功能 加速查詢 建立表時建立索引 create tabl...

Sql Server 建立高階聯結

自聯結 自己和自己進行連線 如乙個表進行自己對自己聯結。select from products select prod id vend id from products select rtrim prod id rtrim vend id from products select rtrim pr...

資料庫9 聯結表 高階聯結 組合查詢 全文本搜尋

sql最強大的功能之一就是能在資料檢索查詢的執行中聯結 join 表。聯結是利用sql的select能執行的最重要的操作,能很好的理解聯結及其語法是學習sql的乙個極為重要的組成部分。1 注意所使用的聯結型別,一般我們使用內部聯結,但使用外部聯結也是有效的。2 保證使用正確的聯結條件,否則將返回不正...