sql的鏈結查詢

2022-07-03 10:12:12 字數 2655 閱讀 9048

1

-- 建立部門表

2create table dept (

3id int primary key auto_increment,

4name varchar(20)5);

67insert into dept (name) values ('開發部'),('市場部'),('財務部');89

-- 建立員工表

10create table emp (

11id int primary key auto_increment,

12name varchar(10),

13gender char(1), -- 性別

14salary double, -- 工資

15join_date date, -- 入職日期

16dept_id int

17);

1819

insert into emp(name,gender,salary,join_date,dept_id) values('孫悟空','男',7200,'2013-02-24',1);

20insert into emp(name,gender,salary,join_date,dept_id) values('豬八戒','男',3600,'2010-12-02',2);

21insert into emp(name,gender,salary,join_date,dept_id) values('唐僧','男',9000,'2008-08-08',2);

22insert into emp(name,gender,salary,join_date,dept_id) values('白骨精','女',5000,'2015-10-07',3);

23 insert into emp(name,gender,salary,join_date,dept_id) values('蜘蛛精','女',4500,'2011-03-14',1);

隱式裡面是沒有inner關鍵字的

select [字段,字段,字段][*] from 表1,表2 where 連線條件 --(外來鍵的值等於主鍵的值) 

select * from emp,dept where emp.dept_id = dept.id;

select emp.id,emp.name,emp.gender,emp.salary,emp.join_date,dept.name from emp,dept where emp.dept_id = dept.id;

-- 取別名---開發中一般使用取別名的方式

select e.id,e.name,e.gender,e.salary,e.join_date,d.name from emp e,dept d where e.dept_id = d.id;

1.2顯示內連線

顯示裡面是由inner關鍵字的

select [字段,字段,字段][*] from a [inner] join b on 連線條件 [ where 其它條件]

select * from emp inner join dept on emp.dept_id = dept.id

select * from emp inner join dept on emp.dept_id = dept.id where emp.id = 2

select * from emp join dept on emp.dept_id = dept.id where emp.id = 2

內連線的特點(查的是什麼東西)

內連線查詢的是公共部分,滿足連線條件(主外來鍵關係)的部分

使用內連線的關鍵點

語法

-- 隱式(不出現inner)

select * from a,b where a.主鍵=b.外來鍵 and 其它條件

-- 顯示(出現inner)

select * from a [inner] join b on a.主鍵=b.外來鍵 where 其它條件

以join左邊的表為主表,展示主表的所有資料,根據條件查詢連線右邊表的資料,若滿足條件則展示,若不滿足則以null顯示.

可以理解為:在內連線的基礎上保證左邊表的資料全部顯示

2.1.1語法

select [字段][*] from a left [outer] join b on 條件

以join右邊的表為主表,展示右邊表的所有資料,根據條件查詢join左邊表的資料,若滿足則展示,若不滿足則以null顯示

可以理解為:在內連線的基礎上保證右邊表的資料全部顯示

2.1.2語法

select 字段 from a right [outer] join b on 條件

select * from a left [outer] join b on 連線條件  --左外連線

select * from a right [outer] join b on 連線條件 --右外連線

1.使用者1和訂單m

查詢所有的使用者的訂單資訊 外連線

查詢下單的使用者的資訊 內連線

2.使用者1和賬戶m

查詢所有的使用者的賬戶資訊 外連線

查詢所有使用者的開戶資訊 內連線

sql 鏈結 查詢

通過連線運算子可以實現多個表查詢。連線是關聯式資料庫模型的主要特點,是它區別於其它型別 資料庫管理系統的乙個標誌。內連線就是用比較運算子比較要用連線列的值的連線。join或者inner join。可以看一看這一篇文章,作者總結的很好 sql連線查詢總結和練習 內連線是應用程式中用的普遍的 連線 操作...

sql鏈結查詢

自然連線 使用乙個表連線它自身的操作。就是乙個表中的字段連線表中的另外乙個欄位的查詢 等值連線 內連線 inner join 多個表中的連線查詢,查詢結果只返回匹配的查詢條件 外連線 outer join 什麼是外連線 外連線是指查詢出符合連線條件的資料同時還包含孤兒資料。左外鏈結包含左表的孤兒資料...

oracle查詢鏈結數 sql命令

select t.osuser,t.status,t.logon time from v session t select t.osuser,t.status,t.logon time from v session t where t.osuser admin select t.osuser,t.s...