連線查詢是將兩個或兩個以上的表按某個條件連線起來,從中選取需要的資料
當不同的表中存在表示相同意義的字段時,可以通過該字段來連線這幾張表
可以看到,上面兩張表都有同乙個欄位d_id
當兩張表含有相同意義的字段(可以不同名)時就可以進行連線查詢內連線查詢
mysql> select num, name, employee.d_id, ***, d_name, function
-> from employee, department
-> where employee.d_id=department.d_id;
| num | name | d_id | *** | d_name | function |
| 1 | 張三 | 1001 | 男 | 科技部 | 研發產品 |
| 2 | 李四 | 1001 | 女 | 科技部 | 研發產品 |
| 3 | 王五 | 1002 | 男 | 生產部 | 生產產品 |
rows in set (0.00 sec)
內連線查詢只會查詢完全匹配的結果,此處使用d_id欄位進行連線
下面的表中也同樣使用這一字段
外連線查詢
外查詢也需要通過指定欄位來進行連線,當該字段取值相等時,可以查詢出該記錄
而且,該欄位取值不相等的記錄也可以查詢出來
外連線查詢包括左連線查詢和右連線查詢
左連線查詢
mysql> select num, name, employee.d_id, d_name, function
-> from employee left join department
-> on employee.d_id=department.d_id;
| num | name | d_id | d_name | function |
| 1 | 張三 | 1001 | 科技部 | 研發產品 |
| 2 | 李四 | 1001 | 科技部 | 研發產品 |
| 3 | 王五 | 1002 | 生產部 | 生產產品 |
| 4 | aric | 1004 | null | null |
rows in set (0.00 sec)
此處不僅查詢出了兩表中d_id欄位相匹配的資訊
並且通過left join查詢出了employee表中所有指定欄位的資訊
由於aric沒有對應d_name和function資訊,所以顯示null
右連線查詢
mysql> select num, name, employee.d_id, d_name, function
-> from employee right join department
-> on employee.d_id=department.d_id;
| num | name | d_id | d_name | function |
| 1 | 張三 | 1001 | 科技部 | 研發產品 |
| 2 | 李四 | 1001 | 科技部 | 研發產品 |
| 3 | 王五 | 1002 | 生產部 | 生產產品 |
| null | null | null | 銷售部 | 策劃銷售 |
rows in set (0.00 sec)
與上面相反,這裡查詢出了匹配的資訊和department表中的所有指定欄位的資訊
但是由於employee表中部分字段沒有對應,因此最後一行記錄有顯示null
復合條件連線查詢
mysql> select num, name, employee.d_id, ***, age, address
-> from employee, department
-> where employee.d_id=department.d_id
-> and age>=25;
| num | name | d_id | *** | age | address |
| 1 | 張三 | 1001 | 男 | 26 | 3號樓5層 |
| 3 | 王五 | 1002 | 男 | 25 | 5號樓1層 |
rows in set (0.00 sec)
復合條件連線查詢是在進行連線查詢的時候加入限制條件,此處的age>=25便是
通常情況下,限制條件越多,查詢越精確,限制條件可用and累加
此外,還可以用復合條件進行order by 排序
tips:連線查詢中使用最多的是內連線查詢,而外連線查詢使用頻率較低
詳細解讀mysql 詳細解讀MySQL中的許可權
一 前言 很多文章中會說,資料庫的許可權按最小許可權為原則,這句話本身沒有錯,但是卻是一句空話。因為最小許可權,這個東西太抽象,很多時候你並弄不清楚具體他需要哪些許可權。現在很多mysql用著root賬戶在操作,並不是大家不知道用root許可權太大不安全,而是很多人並不知道該給予什麼樣的許可權既安全...
mysql連線教程 MySQL 連線
mysql 連線 使用mysql二進位制方式連線 您可以使用mysql二進位制方式進入到mysql命令提示符下來連線mysql資料庫。例項以下是從命令列中連線mysql伺服器的簡單例項 root host mysql u root p enter password 在登入成功後會出現 mysql 命...
mysql 快取 mysql 快取機制解讀
首先講解一下,快取的原理 快取存在乙個hash表中,通過查詢sql,查詢資料庫,客戶端協議等作為key,在判斷命中前,命中條件 1 mysql不會解析sql,而是使用sql去查詢快取,2 sql上的任何字元的不同,如空格,注釋,都會導致快取不命中。3 如果查詢有不確定的資料like now curr...