常用的SQL語句

唉今天面試問了個表連接的問題沒有答上來,好桑心,這東西敲一敲就會啦,真是的,整理一下吧
數(shù)據(jù)庫表如下:


SC(Sid,Cid,score)成績表
Sid:學(xué)號
Cid:編號
score:成績


Student(Sid,Sname,Sage,Ssex)學(xué)生表
Sid:學(xué)號
Sname:學(xué)生姓名
Sage:學(xué)生年齡
Ssex:學(xué)生性別


Course(Cid,Cname,Tid)課程表
Cid:課程編號
Cname:課程名稱
Tid:教師編號


Teacher(Tid,Tname)教師表
Tid:教師編號
Tname:教師名字


1. 插入數(shù)據(jù)到SC數(shù)據(jù)庫

insert into SC(Sid,Cid,score) values ('201043192','001','53')

插入數(shù)據(jù).png

2. 更新SC數(shù)據(jù)庫數(shù)據(jù)

update SC set Cid='003' where Sid='201043192'

update.png

3. 創(chuàng)建表

create table SC(Sid char(10),Cid char(5),score int(3))

4. 查詢學(xué)生成績>60的同學(xué)的學(xué)號和平均成績

select Sid,avg(score) as avgscore from SC group by Sid having avgscore>60

平均成績.png

由于平均成績是分組之后才查詢出來的,所以必須先分組(group by)再取平均值,group by除了可以取平均值,還可以取sum(),min(),max(),count(*)


下面重點說下表的連接:
連接方式分三種,內(nèi)連接,外連接,交叉連接.
內(nèi)連接用inner join 取兩個表的交集
外連接包括左(外)連接和右(外)連接和全外連接
左外連接以左邊的表為主表 left join
右外連接以右邊的表為主表 right join
全外連接是取兩個表的并集 full join
交叉連接是取兩個表的笛卡爾積 cross join
下面說下常用的:一個內(nèi)連接+兩個外連接


tableA(sid,sname)


圖片.png

tableB(sid,score)


圖片.png

1. 查詢所有同學(xué)的學(xué)號,姓名(使用內(nèi)連接)

select tableA.sid,sname
from tableA inner join tableB
on tableA.sid=tableB.sid
內(nèi)連接.png

內(nèi)連接取交集

2. 查詢所有同學(xué)的學(xué)號,姓名(使用左連接)

select tableA.sid,sname
from tableA left join tableB
on tableA.sid=tableB.sid
左連接.png

注意:左連接時,當(dāng)sid兩個表都有時,要標(biāo)注是哪個表的sid,要使用左表.sid,因為左連接時,是以左邊的表為基礎(chǔ),連接右邊的表,左邊表的數(shù)據(jù)應(yīng)該全部顯示,即使對應(yīng)的右邊表中某字段對應(yīng)的值有空數(shù)據(jù),也要全部顯示左邊的數(shù)據(jù),右邊的數(shù)據(jù)會以左邊表數(shù)據(jù)為基礎(chǔ)顯示

3. 查詢所有同學(xué)的學(xué)號,姓名(使用右連接)

select tableB.sid,sname
from tableA right join tableB
on tableA.sid=tableB.sid
右連接.png

右連接時,當(dāng)sid兩個表都有時,要標(biāo)注是哪個表的sid,要使用右表.sid,因為右連接就是以右邊的表為基礎(chǔ),連接左邊的表,右邊表的數(shù)據(jù)會全部顯示,即使對應(yīng)的左邊的表種某字段對應(yīng)的值有空數(shù)據(jù),也要全部顯示右邊表的數(shù)據(jù),左邊的數(shù)據(jù)會以右邊表數(shù)據(jù)為基礎(chǔ)顯示


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容