10、mysql数据表中数据的查询(2)
生活随笔
收集整理的這篇文章主要介紹了
10、mysql数据表中数据的查询(2)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
介紹一下mysql中查詢的重中之重,連接查詢
創(chuàng)建student和teacher表,表中數(shù)據(jù)如下:
| student | |
| teacher |
交叉連接查詢
查詢結(jié)果是連接的幾個(gè)表中滿足條件的相關(guān)聯(lián)的數(shù)據(jù)的交集
| sql | SELECT s.id sid, s.name sname , t.id tid ,t.name tname FROM student s ,(或者將逗號(hào)去掉使用CROSS JOIN) teacher t ?WHERE? s.name = t.name ? |
| 結(jié)果 |
?
內(nèi)連接查詢
將連接的幾個(gè)表中滿足條件的數(shù)據(jù)的交集查詢出來,同上
| sql | SELECT s.id sid, s.name sname , t.id tid ,t.name tname FROM student s INNER JOIN teacher t ON? s.name = t.name ? |
| 結(jié)果 |
?
左外連接查詢
將連接的左表中滿足條件(where后邊的數(shù)據(jù))的全部數(shù)據(jù)和右表中滿足連接條件(on后邊的條件)的數(shù)據(jù)查詢出來,如果在右表中沒有滿足連接條件的數(shù)據(jù)則以NULL值代替,右連接同理
| sql | SELECT s.id sid, s.name sname , t.id tid ,t.name tname FROM student s LEFT JOIN teacher t ON? s.name = t.name ? |
| 結(jié)果 |
?
右外連接查詢
| sql | SELECT s.id sid, s.name sname , t.id tid ,t.name tname FROM student s RIGHT JOIN teacher t ON? s.name = t.name ? |
| 結(jié)果 |
?
分析
由于未進(jìn)行任何優(yōu)化處理,使用explain來分析以上sql時(shí),結(jié)果如下:
使用連接查詢時(shí),一定要注意連接條件一定要添加,不然容易造成大量冗余數(shù)據(jù)出現(xiàn)
總結(jié)
以上是生活随笔為你收集整理的10、mysql数据表中数据的查询(2)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 40、使用javassit操作运行时字节
- 下一篇: 24、mysql连接线程的show和ki