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