數據庫連接查詢

SQL2中的連接查詢分類

(1)笛卡爾積|交叉連接:無條件連接,結果爲兩個關係元組數之積

[From] <關係名1> CROSS JOIN <關係名2>

(2)自然連接:以所有公共屬性爲基礎的等值連接,結果爲兩個關係模式的並集(刪除重複列)

[From] <關係名1> NATURAL JOIN <關係名2>

(3)內部連接:以條件表達式爲連接條件,不保留懸浮元組,保留重複列,有等值連接和不等連接之分

[From] <關係名1> [INNER] JOIN <關係名2> ON <連接條件表達式>|USING(<列名>)

(4)外部連接:可以保留懸浮元組,共分3*2=6種情況

[From] [NATURAL]<LEFT|RIGHT|FULL> OUTER JOIN [ON<連接條件表達式> USING(<列名>)]


幾點補充說明 

(1)連接可以在SELECT 語句的FROM子句或WHERE子句中建立,在FROM子句中指出連接時有助於將連接操作與WHERE子句中的搜索條件區分開來;

(2)對於查詢中涉及到多個關係(即用逗號連接多個關係)的情況,WHERE子句如果給出內部連接條件,就等同於使用內部連接;如果未給出連接條件,FROM子句中將以笛卡爾積的形式進行連接;

  (3)當 MySQL 在從一個表中檢索信息時,你可以提示它選擇了哪一個索引。如果 EXPLAIN 顯示 MySQL 使用了可能的索引列表中錯誤的索引,這個特性將是很有用的。通過指定 USE INDEX (key_list),你可以告訴 MySQL 使用可能的索引中最合適的一個索引在表中查找記錄行。可選的二選一句法 IGNORE INDEX (key_list) 可被用於告訴 MySQL 不使用特定的索引。

  (4)無論哪種連接都不能對text、ntext和image數據類型列進行直接連接,但可以對這三種列進行間接連接。例如:

SELECT p1.pub_id,p2.pub_id,p1.pr_info

FROM pub_info ASp1 INNER JOIN pub_info AS p2

ON DATALENGTH(p1.pr_info)=DATALENGTH(p2.pr_info)


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章