溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

簡單搞懂MySQL數(shù)據(jù)庫基礎(chǔ)知識

發(fā)布時間:2020-05-12 10:46:44 來源:億速云 閱讀:228 作者:三月 欄目:MySQL數(shù)據(jù)庫

下面講講關(guān)于MySQL數(shù)據(jù)庫基礎(chǔ)知識,文字的奧妙在于貼近主題相關(guān)。所以,閑話就不談了,我們直接看下文吧,相信看完MySQL數(shù)據(jù)庫基礎(chǔ)知識這篇文章你一定會有所受益。

sql語句實戰(zhàn)--表連接 (多表查詢)

標(biāo)準(zhǔn)SQL語句格式有以下4種:

ü 表內(nèi)連接

Select col1,col2...from tab1,tab2 where tab1.col3=tab2.col3;

 Col1 列名  tab1表名  where tab1.col3=tab2.col3 連接條件

ü 表外連接(分兩種)

左連接

Select col1,col2... from tab1 left join tab2 on tab1.col3=tab2.col3;

右連接

Select col1,col2... from tab1 right join tab2 on tab1.col3=tab2.col3;

ü 子查詢

Select *from tab1 where col[in]|[=](select *from tab2 where col ...);

實戰(zhàn)場景:新建兩個表,并插入規(guī)定的數(shù)據(jù),利用這兩個表,練習(xí)表的連接(內(nèi),左,右,子)                                    

1) 新建表A:

Create table A

(id smallint(5) unsigned auto_increment,

Name varchar(50) not null,

Primary key (id)

) engine=innodb default charset=utf8;

Desc  A;

執(zhí)行結(jié)果:

 簡單搞懂MySQL數(shù)據(jù)庫基礎(chǔ)知識

可見有idname兩個字段。

2) 新建表B

Create table B

(id smallint(5) unsigned auto_increment,

Address  varchar(50) not null,

A_id smallint(5) unsigned,

Primary key (id)

) engine=innodb default charset=utf8;

Desc  B;

解釋:A_id表示和A關(guān)聯(lián)的ID

執(zhí)行結(jié)果:

 簡單搞懂MySQL數(shù)據(jù)庫基礎(chǔ)知識

可見有idaddress、A_id三個字段 

3) A表里插數(shù)據(jù):

Insert  into  A(name)

Values(''),(''),(''); 

執(zhí)行結(jié)果:

 簡單搞懂MySQL數(shù)據(jù)庫基礎(chǔ)知識

4) B表里插數(shù)據(jù):

Insert  into  B(address,A_id)

Values('北京',1),('上海',3),('天津',10);

執(zhí)行結(jié)果:

簡單搞懂MySQL數(shù)據(jù)庫基礎(chǔ)知識  

5) 執(zhí)行內(nèi)連接語句(首推此語句)

Select A.name, B.address from A,B where A.id = B.A_id;

解釋:查找A表里的name字段和B表里的address字段,條件是A表里的id字段和B表里的A_id字段做連接。

執(zhí)行結(jié)果:

 簡單搞懂MySQL數(shù)據(jù)庫基礎(chǔ)知識

6) 執(zhí)行左連接語句

Select A.name, B.address from A left join B on A.id = B.A_id;

解釋:左連接是以左側(cè)的列為主,右側(cè)的列去匹配左側(cè)的,如果匹配不上,則為空;

執(zhí)行結(jié)果:

簡單搞懂MySQL數(shù)據(jù)庫基礎(chǔ)知識 

從結(jié)果可以看出,右側(cè)的第三行address沒有匹配上,所以為空。

7) 執(zhí)行右連接語句

Select A.name, B.address from A right join B on A.id = B.A_id;

解釋:右連接是以右側(cè)的列為主,左側(cè)的列去匹配右側(cè)的,如果匹配不上,則為空;

執(zhí)行結(jié)果:

 簡單搞懂MySQL數(shù)據(jù)庫基礎(chǔ)知識

從結(jié)果可以看出,左側(cè)的第三行name沒有匹配上,所以為空。 

8) 子查詢語句

Select * from A where id in (select A_id from B where address = 北京);

解釋:括號里的意思是從B表里找address是北京的對應(yīng)的A_id

然后再和A表的id去匹配。

對于以上MySQL數(shù)據(jù)庫基礎(chǔ)知識相關(guān)內(nèi)容,大家還有什么不明白的地方嗎?或者想要了解更多相關(guān),可以繼續(xù)關(guān)注我們的行業(yè)資訊板塊。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI