內連線實際上就是利用where子句對兩種表形成的笛卡兒積進行篩選,我們前面學習的查詢都是內連線,也是在開發過程中使用的最多的連線查詢。
select 字段 from 表1 inner join 表2 on 連線條件 and 其他條件;
案例:顯示smith的名字和部門名稱
-- 用前面的寫法
select ename, dname from emp, dept where emp.deptno=dept.deptno and ename=
'smith'
;-- 用標準的內連線寫法
select ename, dname from emp inner
join dept on emp.deptno=dept.deptno and ename=
'smith'
;
外連線分為左外連線和右外連線
2.1 左外連線left join on
如果聯合查詢,左側的表完全顯示我們就說是左外連線。
語法:select 欄位名 from 表名1 left join 表名2 on 連線條件
– 建兩張表
create
table stu (id int
, name varchar(30
));-- 學生表
insert
into stu values(1
,'jack'),
(2,'tom'),
(3,'kity'),
(4,'nono');
create
table exam (id int
, grade int);
-- 成績表
insert
into exam values(1
,56),
(2,76
),(11
,8);
查詢所有學生的成績,如果這個學生沒有成績,也要將學生的個人資訊顯示出來
– 當左邊表和右邊表沒有匹配時,也會顯示左邊表的資料
select
*from stu left
join exam on stu.id=exam.id;
.2 右外連線right join on
如果聯合查詢,右側的表完全顯示我們就說是右外連線。
語法:select 字段 from 表名1 right join 表名2 on 連線條件;
對stu表和exam表聯合查詢,把所有的成績都顯示出來,即使這個成績沒有學生與它對應,也要顯示出來
select
*from stu right
join exam on stu.id=exam.id;
列出部門名稱和這些部門的員工資訊,同時列出沒有員工的部門
方法一:
`
select d.dname, e.
*from dept d left
join emp e on d.deptno=e.deptno;
`
方法二:
select d.dname, e.
*from emp e right
join dept d on d.deptno=e.deptno;
MySQL 表的內連和外連
內連線實際上就是利用 where 子句對兩種表形成的笛卡兒積進行篩選 標準語法 select 字段 from 表1 inner join 表2 on 連線條件 and 其他條件 例如 顯示 ld 的名字和部門名稱 前面練習過的 用標準寫法 select ename,dname from emp in...
MySQL 之 表的內連和外連
資料庫中表的連線分為內連 1.內連線 內連線實際上就是利用where子句對兩種表形成的笛卡兒積進行篩選。語法 select 字段 from 表1 inner join 表2 on 連線條件 and 其他條件 eg 顯示smith的名字和部門名稱 用標準的內連線寫法 select ename,dnam...
表的內連與外連 and 表的索引特性
索引特性 內連線 外連線 左外連線 右外連線建立索引 在建立表的時候,直接在欄位名後指定 primary keycreate table table name id int primary key,name varchar 30 在建立表的最後,指定某列或某幾列為主鍵索引create table t...