mysql連線解讀 MySQL筆記之連線查詢詳解

2021-10-17 19:40:30 字數 2564 閱讀 4131

連線查詢是將兩個或兩個以上的表按某個條件連線起來,從中選取需要的資料

當不同的表中存在表示相同意義的字段時,可以通過該字段來連線這幾張表

可以看到,上面兩張表都有同乙個欄位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...