首頁(yè)技術(shù)文章正文

Python連接查詢的SQL語(yǔ)句怎么寫?

更新時(shí)間:2023-11-03 來(lái)源:黑馬程序員 瀏覽量:

連接查詢可以實(shí)現(xiàn)多個(gè)表的查詢,當(dāng)查詢的字段數(shù)據(jù)來(lái)自不同的表就可以使用連接查詢來(lái)完成。連接查詢可以分為:內(nèi)連接查詢、左連接查詢、右連接查詢、自連接查詢,本節(jié)先來(lái)介紹這四種鏈接查詢的用法:

內(nèi)連接查詢

內(nèi)連接查詢,查詢兩個(gè)表中符合條件的共有記錄,內(nèi)連接查詢效果圖如下:

1698980168954_內(nèi)連接查詢.png

內(nèi)連接查詢語(yǔ)法格式如下:

select 字段 from 表1 inner join 表2 on 表1.字段1 = 表2.字段2
說(shuō)明:

inner join 就是內(nèi)連接查詢關(guān)鍵字

on 就是連接查詢條件

例1:使用內(nèi)連接查詢學(xué)生表與班級(jí)表:

select * from students as s inner join classes as c on s.cls_id = c.id;

左連接查詢

以左表為主根據(jù)條件查詢右表數(shù)據(jù),如果根據(jù)條件查詢右表數(shù)據(jù)不存在使用null值填充,左連接查詢效果圖如下:

1698980578393_左連接查詢.png

左連接查詢語(yǔ)法格式:

select 字段 from 表1 left join 表2 on 表1.字段1 = 表2.字段2

說(shuō)明:

left join 就是左連接查詢關(guān)鍵字

on 就是連接查詢條件

表1 是左表

表2 是右表

例1:使用左連接查詢學(xué)生表與班級(jí)表:

select * from students as s left join classes as c on s.cls_id = c.id;

右連接查詢

以右表為主根據(jù)條件查詢左表數(shù)據(jù),如果根據(jù)條件查詢左表數(shù)據(jù)不存在使用null值填充,右連接查詢效果圖如下:

1698980917604_右鏈接查詢.png

右連接查詢語(yǔ)法格式:

select 字段 from 表1 right join 表2 on 表1.字段1 = 表2.字段2

說(shuō)明:

right join 就是右連接查詢關(guān)鍵字

on 就是連接查詢條件

表1 是左表

表2 是右表

例1:使用右連接查詢學(xué)生表與班級(jí)表:

select * from students as s right join classes as c on s.cls_id = c.id;

自連接查詢

左表和右表是同一個(gè)表,根據(jù)連接查詢條件查詢兩個(gè)表中的數(shù)據(jù)。,區(qū)域表效果圖如下:

1698981375871_自連接查詢.png

例1:查詢省的名稱為“山西省”的所有城市

1698981427535_自連接查詢1.png

創(chuàng)建areas表的語(yǔ)法格式如下:

create table areas(    
    id varchar(30) not null primary key, 
    title varchar(30), 
    pid varchar(30)
);

執(zhí)行sql文件給areas表導(dǎo)入數(shù)據(jù):

source areas.sql;

說(shuō)明:

source 表示執(zhí)行的sql文件

自連接查詢的用法:

select c.id, c.title, c.pid, p.title from areas as c inner join areas as p on c.pid = p.id where p.title = '山西省';


分享到:
在線咨詢 我要報(bào)名
和我們?cè)诰€交談!