做一下資料庫的筆記
一下是資料庫中的兩張表,以這兩張表為例,學習多表連線的相關知識
1.笛卡爾交集/交叉連線
select * from emp cross join dept;
將兩個表進行以上的連線,結果如下
這種連線的效果很明顯,就是兩個表裡的每一條資料都進行了一次連線
2.內連線(必須加限定條件)
等值連線
select * from emp inner join dept on emp.deptno=dept.deptno;
這是內連線的相關語句,執行這條語句後的效果如下
emp.deptno=dept.deptno是進行內連線的條件,兩個表就是以的deptno為條件進行連線的
可以明顯的看出和上面結果的不同,雖然列頭還有相同的列,但是表中的資料已經進行了正確的相關聯
3.自然連線(自動識別兩張表相等的列名)
select * from emp natural join dept;
執行結果如下
這個結果就是最後想要的表,和上面的兩個有明顯的區別,既沒有錯誤的資料,也沒有重複的列.系統通過這條語句進行了識別,找出了兩個表中相同的列,並且以這個列作為連線的條件
4.外連線
左外:(基於左邊這張表)
select * from emp left join dept on emp.deptno=dept.deptno;
右外:(基於右邊這張表)
select * from emp right join dept on emp.deptno=dept.deptno;
從上面兩個表的結果可以清楚的看出區別,第乙個是以左邊的表為基礎進行的表鏈結,name等於puck和lick的人在dept表中沒有資料,所以資料顯示為空;而第二個是以右邊的表為基礎進行的表鏈結,餐飲部沒有資料,所以顯示為空
MySQL資料庫 多表連線查詢
多表連線查詢 注意 使用連線技術建議將表經行重新命名!explain 檢索連線是否達標 內連線 語法1 from 表1 inner join 表2 on 主鍵字段 外來鍵字段 where 條件表示式 語法2 from 表1,表2 where 主鍵字段 外來鍵字段 and 條件表示式 三個表連線 fr...
資料庫多表連線
我今天學習了資料庫的多表連j 接,分別有內連線和左外連線還有右外連線,這三個連線是最基本的連線。1.內連線分為是三種 等值連線 是指表之間通過 等於 關係連線起來,產生乙個臨時表,然後對該臨時表進行處理後生成最終結果。其查詢結果中列出被連線表中的所有。2 不等值連線 是指表之間的連線關係不是 等於 ...
Oracle資料庫 多表連線
什麼是多表查詢?從多個表中獲取資料 1.1 笛卡爾集 1.2 等值連線 連線的型別有 等值連線 不等值連線 外連線 自連線 等值連線 示例 查詢員工資訊,要求顯示 員工號,姓名,月薪,部門名稱 select e.empno,e.ename,e.sal,d.name from emp e,dept d...