sql 中的連接符用于連接表、行或值以組合數據,包括 inner join(匹配行)、left join(返回左側表所有行)、right join(返回右側表所有行)、full join(返回所有行)、union(合并表)、union all(保留所有行)、intersect(返回交集)、except(返回左側表中不包含在右側表中的行)、運算符(字符串連接、乘法、除法)和 ||(字符串連接)。
SQL 中連接符
在 SQL 中,連接符用于連接兩個或多個表、行或值。其主要作用是組合數據,以創建更復雜、更全面的數據集。
表連接
INNER JOIN:連接具有匹配列的行的兩個表,僅返回匹配的行。
LEFT JOIN:連接兩個表,并返回左側表的全部行,以及與右側表匹配的行的右側表數據(如果存在)。
RIGHT JOIN:與 LEFT JOIN 相反,返回右側表的全部行,以及與左側表匹配的行的左側表數據(如果存在)。
FULL JOIN:返回兩個表的全部行,以及每個表的匹配行。
行連接
UNION:合并兩個或多個具有相同結構的表或查詢結果,移除重復行。
UNION ALL:合并兩個或多個具有相同結構的表或查詢結果,保留所有行,包括重復行。
INTERSECT:返回兩個或多個表或查詢結果中相交的行。
EXCEPT:返回第一個表或查詢結果中不包含在第二個表或查詢結果中的行。
值連接
+:連接字符串。
-:減法操作。
*:乘法操作。
/:除法操作。
||:連接字符串(ANSI SQL 標準中)。
示例
假設我們有兩個表:
<code>學生表: | id | 姓名 | 年齡 | |---|---|---| | 1 | John | 20 | | 2 | Mary | 21 | 課程表: | id | 課程名稱 | 學生id | |---|---|---| | 1 | 數學 | 1 | | 2 | 科學 | 2 |</code>
登錄后復制
要返回注冊課程的學生信息,我們可以使用 LEFT JOIN:
<code class="sql">SELECT * FROM 學生表 LEFT JOIN 課程表 ON 學生表.id = 課程表.學生id;</code>
登錄后復制
這將輸出:
<code>| id | 姓名 | 年齡 | id | 課程名稱 | 學生id | |---|---|---|---|---|---| | 1 | John | 20 | 1 | 數學 | 1 | | 2 | Mary | 21 | 2 | 科學 | 2 |</code>
登錄后復制