當前位置:
首頁 >
09--MySQL自学教程:多表查询之内连接、外连接以及【子查询】
發布時間:2025/3/20
27
豆豆
生活随笔
收集整理的這篇文章主要介紹了
09--MySQL自学教程:多表查询之内连接、外连接以及【子查询】
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.為什么要拆表?
去除冗余數據2.表與表之間的關系
一對一比如人和身份證QQ和QQ密碼 一對多(多對一)比如:學生和成績的關系 多對多比如:老師和學生的關系3.多表查詢
使用的表格demo1student、demo2和demo3數據如下:
1)合并結果集
sql語句
-- 合并結果集 union和union all-- union 默認會去除完全一樣的數據 SELECT * FROM demo2 UNION SELECT * FROM demo3;-- union all 不會去除重復數據 SELECT * FROM demo2 UNION ALL SELECT * FROM demo3;查詢結果:
1)– union 默認會去除完全一樣的數據
2)– union all 不會去除重復數據
SELECT * FROM demo2 UNION ALL SELECT * FROM demo3;2)連接查詢
a.笛卡爾積
b.內連接inner
sql語句
-- 內連接 -- 將demo2和demo1student中分數相同的數據取出來合并在一起 SELECT * FROM demo2 INNER JOIN demo1student ON demo2.score=demo1student.score; -- 將demo2和demo1student中id相同的數據取出,并且只顯示這些信息:demo1student.id,demo1student.name,demo1student.age,demo1student.gender -- 因為demo2和demo1student有3個id相同,所以會查詢出三個數據 SELECT demo1student.id,demo1student.name,demo1student.age,demo1student.gender FROM demo2 INNER JOIN demo1student ON demo2.id=demo1student.id;查詢結果:
1)– 將demo2和demo1student中分數相同的數據取出來合并在一起
2)– 將demo2和demo1student中id相同的數據取出,并且只顯示這些信息:demo1student.id,demo1student.name,demo1student.age,demo1student.gender
– 因為demo2和demo1student有3個id相同,所以會查詢出三個數據
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
對比內連接和自然連接來說明:自然連接
自然連接可以自動去除重復這里是id
sql語句
-- 自然連接natural SELECT * FROM demo2 INNER JOIN demo3; -- 內連接 SELECT * FROM demo2 NATURAL JOIN demo3; -- 自然連接查詢結果
3)子查詢
sql語句
-- 子查詢 -- 語句含義:查出分數比id=4學生的年齡與分數和大的學生信息 SELECT * FROM demo1student WHERE score>(SELECT age+score FROM demo1student WHERE id=4);-- 這里只是為了說明子查詢怎么用,出的這個示例本身沒有任何意義。查詢結果:
4.查詢的實際應用(見下節)
地址:MySQL數據查詢應用(實戰)(一)http://blog.csdn.net/baidu_37107022/article/details/72629784
MySQL數據查詢應用(實戰)(二)http://blog.csdn.net/baidu_37107022/article/details/72630044
總結
以上是生活随笔為你收集整理的09--MySQL自学教程:多表查询之内连接、外连接以及【子查询】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 08--MySQL自学教程:DQL(数据
- 下一篇: 10--MySQL数据查询应用(实战)(