1.2 內(nèi)連接
內(nèi)連接查詢:查詢兩表或多表中交集部分數(shù)據(jù)。
內(nèi)連接從語法上可以分為:
-
隱式內(nèi)連接
-
顯式內(nèi)連接
隱式內(nèi)連接語法:
select 字段列表 ? from ? 表1 , 表2 ? where 條件 ... ;
顯式內(nèi)連接語法:
select 字段列表 ? from ? 表1 [ inner ] ?join 表2 ?on 連接條件 ... ;
案例:查詢員工的姓名及所屬的部門名稱
-
隱式內(nèi)連接實現(xiàn)
select tb_emp.name , tb_dept.name -- 分別查詢兩張表中的數(shù)據(jù)
from tb_emp , tb_dept -- 關聯(lián)兩張表
where tb_emp.dept_id = tb_dept.id; -- 消除笛卡爾積
-
顯式內(nèi)連接實現(xiàn)
select tb_emp.name , tb_dept.name
from tb_emp inner join tb_dept
on tb_emp.dept_id = tb_dept.id;
多表查詢時給表起別名:
-
tableA as 別名1 , tableB as 別名2 ;
-
tableA 別名1 , tableB 別名2 ;
-
使用了別名的多表查詢:
select emp.name , dept.name from tb_emp emp inner join tb_dept dept on emp.dept_id = dept.id;
注意事項:
一旦為表起了別名,就不能再使用表名來指定對應的字段了,此時只能夠使用別名來指定字段。
1.3 外連接
外連接分為兩種:左外連接 和 右外連接。
左外連接語法結構:
select 字段列表 ? from ? 表1 ?left [ outer ] ?join 表2 ?on 連接條件 ... ;
左外連接相當于查詢表1(左表)的所有數(shù)據(jù),當然也包含表1和表2交集部分的數(shù)據(jù)。
右外連接語法結構:
select 字段列表 ? from ? 表1 ?right [ outer ] ?join 表2 ?on 連接條件 ... ;
右外連接相當于查詢表2(右表)的所有數(shù)據(jù),當然也包含表1和表2交集部分的數(shù)據(jù)。
案例:查詢員工表中所有員工的姓名, 和對應的部門名稱
-- 左外連接:以left join關鍵字左邊的表為主表,查詢主表中所有數(shù)據(jù),以及和主表匹配的右邊表中的數(shù)據(jù)
select emp.name , dept.name
from tb_emp AS emp left join tb_dept AS dept
? ? on emp.dept_id = dept.id;
案例:查詢部門表中所有部門的名稱, 和對應的員工名稱
-- 右外連接
select dept.name , emp.name
from tb_emp AS emp right join tb_dept AS dept
? ? on emp.dept_id = dept.id;
注意事項:文章來源:http://www.zghlxwxcb.cn/news/detail-766718.html
左外連接和右外連接是可以相互替換的,只需要調(diào)整連接查詢時SQL語句中表的先后順序就可以了。而我們在日常開發(fā)使用時,更偏向于左外連接。文章來源地址http://www.zghlxwxcb.cn/news/detail-766718.html
到了這里,關于數(shù)據(jù)庫開發(fā)之內(nèi)連接和外連接的詳細解析的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!