日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

09--MySQL自学教程:多表查询之内连接、外连接以及【子查询】

發(fā)布時(shí)間:2025/3/20 数据库 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 09--MySQL自学教程:多表查询之内连接、外连接以及【子查询】 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1.為什么要拆表?

去除冗余數(shù)據(jù)

2.表與表之間的關(guān)系

一對(duì)一比如人和身份證QQ和QQ密碼 一對(duì)多(多對(duì)一)比如:學(xué)生和成績的關(guān)系 多對(duì)多比如:老師和學(xué)生的關(guān)系

3.多表查詢

使用的表格demo1student、demo2和demo3數(shù)據(jù)如下:

1)合并結(jié)果集

sql語句

-- 合并結(jié)果集 union和union all-- union 默認(rèn)會(huì)去除完全一樣的數(shù)據(jù) SELECT * FROM demo2 UNION SELECT * FROM demo3;-- union all 不會(huì)去除重復(fù)數(shù)據(jù) SELECT * FROM demo2 UNION ALL SELECT * FROM demo3;

查詢結(jié)果:
1)– union 默認(rèn)會(huì)去除完全一樣的數(shù)據(jù)

SELECT * FROM demo2 UNION SELECT * FROM demo3;

2)– union all 不會(huì)去除重復(fù)數(shù)據(jù)

SELECT * FROM demo2 UNION ALL SELECT * FROM demo3;

2)連接查詢

a.笛卡爾積

b.內(nèi)連接inner

sql語句

-- 內(nèi)連接 -- 將demo2和demo1student中分?jǐn)?shù)相同的數(shù)據(jù)取出來合并在一起 SELECT * FROM demo2 INNER JOIN demo1student ON demo2.score=demo1student.score; -- 將demo2和demo1student中id相同的數(shù)據(jù)取出,并且只顯示這些信息:demo1student.id,demo1student.name,demo1student.age,demo1student.gender -- 因?yàn)閐emo2和demo1student有3個(gè)id相同,所以會(huì)查詢出三個(gè)數(shù)據(jù) SELECT demo1student.id,demo1student.name,demo1student.age,demo1student.gender FROM demo2 INNER JOIN demo1student ON demo2.id=demo1student.id;

查詢結(jié)果:
1)– 將demo2和demo1student中分?jǐn)?shù)相同的數(shù)據(jù)取出來合并在一起

SELECT * FROM demo2 INNER JOIN demo1student ON demo2.score=demo1student.score;

2)– 將demo2和demo1student中id相同的數(shù)據(jù)取出,并且只顯示這些信息:demo1student.id,demo1student.name,demo1student.age,demo1student.gender

– 因?yàn)閐emo2和demo1student有3個(gè)id相同,所以會(huì)查詢出三個(gè)數(shù)據(jù)

SELECT demo1student.id,demo1student.name,demo1student.age,demo1student.gender FROM demo2 INNER JOIN demo1student ON demo2.id=demo1student.id;

c.外連接outer

select * from table1 left/right outer join table2 on 條件

d.自然連接natural

對(duì)比內(nèi)連接和自然連接來說明:自然連接
自然連接可以自動(dòng)去除重復(fù)這里是id

sql語句

-- 自然連接natural SELECT * FROM demo2 INNER JOIN demo3; -- 內(nèi)連接 SELECT * FROM demo2 NATURAL JOIN demo3; -- 自然連接

查詢結(jié)果

3)子查詢

sql語句

-- 子查詢 -- 語句含義:查出分?jǐn)?shù)比id=4學(xué)生的年齡與分?jǐn)?shù)和大的學(xué)生信息 SELECT * FROM demo1student WHERE score>(SELECT age+score FROM demo1student WHERE id=4);-- 這里只是為了說明子查詢?cè)趺从?#xff0c;出的這個(gè)示例本身沒有任何意義。

查詢結(jié)果:

4.查詢的實(shí)際應(yīng)用(見下節(jié))

地址:MySQL數(shù)據(jù)查詢應(yīng)用(實(shí)戰(zhàn))(一)http://blog.csdn.net/baidu_37107022/article/details/72629784
MySQL數(shù)據(jù)查詢應(yīng)用(實(shí)戰(zhàn))(二)http://blog.csdn.net/baidu_37107022/article/details/72630044

總結(jié)

以上是生活随笔為你收集整理的09--MySQL自学教程:多表查询之内连接、外连接以及【子查询】的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。