MySql中的資料查詢語言(DQL)三:連線查詢
一、概念
1、什麼是連線查詢?
連線查詢:也可以叫跨表查詢,需要關聯多個表進行查詢
在實際開發中,大部分的情況下都不是從單表中查詢資料,一般都是多張表聯合查詢取出最終的結果。
在實際開發中,一般一個業務都會對應多張表,比如:學生和班級,起碼兩張表。
學生和班級資訊儲存到一張表中,結果就像上面一樣,資料會存在大量的重複,導致資料的冗餘。
2、連線查詢的分類?
根據語法出現的年代來劃分的話,包括:
SQL92(一些老的DBA可能還在使用這種語法。DBA:DataBase Administrator,資料庫管理員)
SQL99(比較新的語法)
根據表的連線方式來劃分,包括:
內連線:
- 等值連線
- 非等值連線
- 自連線
外連線:
- 左外連線(左連線)
- 右外連線(右連線)
- 全連線(這個不講,很少用!)
3、笛卡爾積現象
在表的連線查詢方面有一種現象被稱為:笛卡爾積現象。(笛卡爾乘積現象)
A集合和B集合相乘,包含了集合A中元素和集合B中元素相結合的所有的可能性。既兩個集合相乘得到的新集合的元素個數是 A集合的元素個數 × B集合的元素個數;
舉例:
案例:找出每一個員工的部門名稱,要求顯示員工名和部門名。
select ename,dname from emp,dept;
±-------±-----------+
| ename | dname |
±-------±-----------+
| SMITH | ACCOUNTING |
| SMITH | RESEARCH |
| SMITH | SALES |
| SMITH | OPERATIONS |
| ALLEN | ACCOUNTING |
| ALLEN | RESEARCH |
| ALLEN | SALES |
| ALLEN | OPERATIONS |
…
56 rows in set (0.00 sec)
笛卡爾積現象: 當兩張表進行連線查詢的時候,沒有任何條件進行限制,最終的查詢結果條數是兩張表記錄條數的乘積。
關於表的別名:
select e.ename,d.dname from emp e,dept d;
表的別名有什麼好處?
- 第一:執行效率高。
- 第二:可讀性好。
4、怎麼避免笛卡爾積現象?
當然是加條件進行過濾。
思考:避免了笛卡爾積現象,會減少記錄的匹配次數嗎?
不會,次數還是56次。只不過顯示的是有效記錄。
案例:找出每一個員工的部門名稱,要求顯示員工名和部門名。
mysql> select e.ename,d.dname from emp e,dept d where e.deptno = d.deptno;//SQL92,以後不用。
相關文章
- 資料庫查詢語言(DQL)資料庫
- 3.DQL資料查詢語言(內連線,外連線,自連線)
- mysql查詢語句5:連線查詢MySql
- MySQL — 資料查詢語言MySql
- MySQL(三)DQL之基礎查詢MySql
- 資料庫資料的查詢----連線查詢資料庫
- 資料查詢語句:DQL(Data Query Language)
- 資料庫 - 連線查詢、巢狀查詢、集合查詢資料庫巢狀
- MySQL內連線查詢語句MySql
- PHP連線、查詢MySQL資料庫PHPMySql資料庫
- DQL(Date Query Language)資料庫查詢語句資料庫
- MySQL之連線查詢和子查詢MySql
- mysql-分組查詢-子查詢-連線查詢-組合查詢MySql
- C語言連線mysql資料庫查詢中文的資料表亂碼問題C語言MySql資料庫
- MySQL之連線查詢MySql
- sql 連線查詢例項(left join)三表連線查詢SQL
- MySQL學習-連線查詢MySql
- MySQL8:連線查詢MySql
- MySQL - 資料查詢 - 簡單查詢MySql
- MYSQL練習1: DQL查詢練習MySql
- 資料庫三表連線查詢怎麼做資料庫
- 連線查詢
- MySQL資料查詢MySql
- MYSQL查詢資料MySql
- [Mysql 查詢語句]——查詢欄位MySql
- 關係型資料庫查詢語言 SQL 和圖資料庫查詢語言 nGQL 對比資料庫SQL
- select查詢之四:連線查詢
- myeclipse 中java連線mysql、查詢測試EclipseJavaMySql
- MySql的join(連線)查詢 (三表 left join 寫法)MySql
- mysql求交集:UNION ALL合併查詢,inner join內連線查詢,IN/EXISTS子查詢MySql
- php基礎之連線mysql資料庫和查詢資料PHPMySql資料庫
- SQL連線查詢SQL
- oracle 連線查詢Oracle
- 【Oracle】--連線查詢Oracle
- Javaweb-DQL-條件查詢JavaWeb
- [Mysql 查詢語句]——分組查詢group byMySql
- [Mysql 查詢語句]——查詢指定記錄MySql
- 資料庫學習(四)連線查詢資料庫