SQL 多表查詢

2021-10-09 00:02:19 字數 1156 閱讀 4230

不同的 sql join

inner join(內連線):如果表中至少有乙個匹配,也從左表返回所有的行

left join(左連線):即使右表中沒有匹配,也從右表返回所有的行

right join(右連線):即使左表中沒有匹配,也從右表返回所有的行

full join(全連線):只有其中乙個表中存在匹配也從表返回所有的行

內連線交叉連線查詢(基本不會使用,得到的是兩個表的乘積)

selectfrom table1,table2

內連線查詢(使用的關鍵字 inner join–inner可以省略)

隱式內連線:selectfrom table1,table2 where 條件;

顯示內連線:select*from table1 join table2 on 條件;

當兩個表中的資料都符合on後面的條件的時候,才會被select出來。

左連線left join或left outer join

sql語句:

select*from student left join course on student.id=course.id

左外連線包括left join左表所有行。假設左表中某行在右表沒有匹配。則結果中相應行右表的部分所有為空(null)。

此時我們不能說結果的行數等於左表資料的行數。

此處查詢結果的行數等於左表資料的行數,左右兩表此時為一對一關係。

右連線right join或 right outer join

sql語句:

select*from student right join course on student.id=course.id

右外連線包括right join右表所有行,假設左表中某行在右表沒有匹配,則結果中相應左表的部分所有為空(null)。

此時我們不能說結果的行數等於右表的行數。

此處查詢結果的行數等於左表資料的行數,左右兩表此時為一對一關係。

全連線sql目前不支援此種方式,可以用其他方式代替解決。

子查詢:一條select語句結果為另一條select語法部分(查詢條件、結果、表)

可以將一條查詢語句作為另外乙個查詢語句的條件和表,再次進行查詢。

SQL 多表查詢

join操作符 1.笛卡爾積,rxs 可直接轉換為sql語句 2.等值連線,記作 可直接轉換為sql語句 3.自然連線,記作 可轉換為sql語句 4.左外連線和右外連線的表示方法及轉換為sql 注意若多個關係有同名屬性,則用 關係名.屬性名 指出重名屬性 連線也可以與投影,選擇等結合使用。1.查詢選...

SQL 查詢(二 多表查詢)

使用外來鍵作為橋梁連線連個表進行查詢。笛卡爾積select e.fname,e.lname,d.name from employee e join department d 在from子句中包含了兩個表,並使用join關鍵字隔開。當查詢中沒有指定兩個表如何連線時會產生笛卡爾積,即兩張表的所有置換 1...

SQL 多表查詢 巢狀查詢

多表查詢 1 結構 select from where 2 笛卡爾積查詢 select from student,course select from student,sdept 3 查詢每個學院的學生情況 select from student,sdept where student.deptno...