MySQL 連接的類型 | MySQL 連接 [使用語法]

已發表: 2020-12-09

目錄

介紹

MySQL 是由 Oracle 支持的開源關係數據庫管理系統 (RDBMS)。 MySQL 由兩個詞組成——“My”,聯合創始人 Michael Widenius 的女兒的名字,以及“SQL”,結構化查詢語言的縮寫。

RDBMS 中的關係一詞是 MySQLwork 中 JOINS 的基礎。 任何數據庫中都可以有多種類型和數量的表。 JOINS 顧名思義,使用公共列將錶鍊接在一起。 一個基本示例是,表 1 包含員工詳細信息,表 2 包含項目詳細信息。

如果我們必須檢查員工參與的項目,我們可以根據員工姓名或員工 ID 加入表,因此這樣做將加入表,並且可以使用所需的所有信息訪問新的虛擬表(可以保存) .

特徵

  • MySQL 是開源的,並且是用於訪問和管理表記錄的適當 RDBMS。
  • 它支持SQL編碼語言,這在數據庫管理領域很常見。
  • MySQL 是基本且易於使用的。 如果有人被困在一個特定的問題上,它有大量的文檔。
  • MySQL 有一個非常強大的安全層。 密碼已加密,因此敏感數據不會受到入侵者的侵害。
  • MySQL 是可擴展的,因為它支持多線程。 即使表非常大,多線程也負責快速執行查詢和數據操作。
  • MySQL具有客戶端/服務器架構。 有一個數據庫服務器和許多連接到服務器的客戶端(應用程序)。

連接類型

內部聯接

內連接是 MySQL 中默認的連接類型。 它連接並返回兩個表中的匹配記錄。 它將一個表的每一行與另一個表進行比較並檢查連接條件。 如果滿足條件,則使用兩個表中的列創建一個新行,並將該新行包含在輸出中。

代碼片段:

選擇t1 emp_id , t1.emp_name,t2.project_name

員工作為 t1

INNER JOIN項目作為 t2

開啟t1.project_id = t2 項目編號

在此查詢中,有兩個表。 第一個表包含員工的詳細信息,第二個表包含當前正在進行的所有項目。 運行上述查詢後,MySQL 將返回所有員工及其各自的項目詳細信息。 這裡的project_id 列是employee 表中的外鍵和projects 表中的主鍵。 沒有任何 project_id 的員工或沒有任何員工的 project_id 的員工將不會被退回。

左連接

左連接,連接並返回兩個表的匹配記錄和第一個表的不匹配記錄。 左連接本質上是從第一個表返回內連接 + 不匹配記錄的輸出。 這些不匹配的行也將包含表 2 中的列,但這些列中的值將為空,因為這些列沒有匹配的數據。

代碼片段:

選擇t1 emp_id , t1.emp_name,t2.project_name

員工作為 t1

LEFT JOIN項目作為 t2

開啟t1.project_id = t2 項目編號

在此查詢中,有兩個表。 第一個表包含員工的詳細信息,第二個表包含當前正在進行的所有項目。 運行上述查詢後,MySQL 將返回所有員工及其各自的項目詳細信息以及未分配 project_id 的員工詳細信息。 這裡的project_id 列是employee 表中的外鍵和projects 表中的主鍵。

閱讀:重命名 SQL 中的列名

右連接

右連接與左連接非常相似,只是現在第二個表中不匹配的記錄將包含在輸出中,並且只有第一個表中的匹配記錄。

代碼片段:

選擇t1 emp_id , t1.emp_name,t2.project_name

員工作為 t1

RIGHT JOIN項目作為 t2

開啟t1.project_id = t2 項目編號

運行上述查詢後,MySQL 將返回所有員工及其各自的項目詳細信息以及沒有匹配員工的項目的詳細信息。 在這些情況下,員工詳細信息列將為 NULL。

完全加入

顧名思義,全連接返回所有匹配和不匹配的記錄。 如果 MySQL 能夠在所需列上找到匹配的行,則將匹配這些記錄。 其餘行將具有 NULL 值。

代碼片段:

選擇*

員工作為 t1

完全外部連接項目作為t2

開啟t1.project_id = t2 項目編號

運行上述查詢後,MySQL 將返回所有員工及其各自的項目詳細信息,以及沒有項目的員工和沒有匹配員工的項目的詳細信息。 某些列將相應地具有 NULL 值。

交叉連接

顧名思義,交叉連接會將表 1 的每一行與表 2 的每一行連接起來。與匹配列無關。 因此,如果每個表中有 5 條記錄,則輸出將有 25 行,因為每一行都與另一行匹配。

代碼片段:

選擇*

員工作為 t1

交叉連接項目作為 t2

運行上述查詢後,MySQL 將返回所有員工以及所有項目詳細信息。 雖然將這些信息可視化並沒有多大意義,但是在一些特殊和特定的情況下,Cross Joins 很重要並且需要。

另請閱讀: SQL 面試問答

報名參加世界頂尖大學的軟件工程課程獲得行政 PG 課程、高級證書課程或碩士課程,以加快您的職業生涯。

結論

JOINS 是數據提取的重要組成部分。 它們有助於根據用戶的需要組合來自各種表的數據。 JOINS 的唯一缺點可能是它們有時寫起來很複雜。 歸根結底,JOINS 非常有用,並且可以在 MySQL 中實現各種類型的連接。

總而言之,在本文中提到的所有數據庫上學習和實踐將增加您的經驗。 瀏覽與之相關的課程概述、學習和工作機會——像 upGrad 這樣的平台提供由 IIIT-B 等知名機構設計的功能強大的課程,在 Executive PG Program Full Stack Development 中進行。

為未來的職業做準備

立即申請軟件工程碩士