MySql基礎-筆記6 -排序、分組、連接的使用、NULL值處理

1、 排序

1.1、作用

使用 MySQL 的 ORDER BY 子句對讀取的數據進行排序,返回搜索結果

1.2、語法

SELECT field1, field2,...fieldN FROM table_name1, table_name2...
ORDER BY field1 [ASC [DESC][默認 ASC]], [field2...] [ASC [DESC][默認 ASC]]

你可以使用任何字段來作爲排序的條件,從而返回排序後的查詢結果。
你可以設定多個字段來排序。
你可以使用 ASC 或 DESC 關鍵字來設置查詢結果是按升序或降序排列。 默認情況下,它是按升序排列。
你可以添加 WHERE...LIKE 子句來設置條件。

1.3、實際操作

查找數據庫pymysql_study的數據表study_tb1中study_password按升序和降序排序。

在這裏插入圖片描述

2、分組

2.1、GROUP BY 語法

SELECT column_name, function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name;

2.2、實際使用

查詢表study_tb1中study_name中的用戶名各出現了多少次

在這裏插入圖片描述

2.3、使用 WITH ROLLUP

WITH ROLLUP 可以實現在分組統計數據基礎上再進行相同的統計(SUM,AVG,COUNT…)。

SELECT fieldN , SUM(fieldN ) as fieldN FROM  table_nameN GROUP BY fieldN WITH ROLLUP;

在統計各用戶名密碼之和,(無實際意義,只是爲了演示語法功能)

在這裏插入圖片描述

3、連接的使用

3.1、說明

在一張表中讀取數據,相對簡單,但是在真正的應用中經常需要從多個數據表中讀取數據,如何使用 MySQL 的 JOIN 在兩個或多個表中查詢數據;
可以在 SELECT, UPDATE 和 DELETE 語句中使用 Mysql 的 JOIN 來聯合多表查詢

INNER JOIN(內連接,或等值連接):獲取兩個表中字段匹配關係的記錄。
LEFT JOIN(左連接):獲取左表所有記錄,即使右表沒有對應匹配的記錄。
RIGHT JOIN(右連接): 與 LEFT JOIN 相反,用於獲取右表所有記錄,即使左表沒有對應匹配的記錄。

3.2、INNER JOIN

查找study_tb2中study_username在study_tb1中對應的study_title對應的字段值

在這裏插入圖片描述

3.3、LEFT JOIN

study_tb1爲左表,study_tb2爲右表

在這裏插入圖片描述

3.4、RIGHT JOIN

study_tb1爲左表,study_tb2爲右表

在這裏插入圖片描述

4、NULL 值處理

4.1、說明

IS NULL: 當列的值是 NULL,此運算符返回 true。
IS NOT NULL: 當列的值不爲 NULL, 運算符返回 true。
<=>: 比較操作符(不同於 = 運算符),當比較的的兩個值相等或者都爲 NULL 時返回 true。
關於 NULL 的條件比較運算是比較特殊的。你不能使用 = NULL 或 != NULL 在列中查找 NULL 值 。
在 MySQL 中,NULL 值與任何其它值的比較(即使是 NULL)永遠返回 NULL,即 NULL = NULL 返回 NULL 。
MySQL 中處理 NULL 使用 IS NULL 和 IS NOT NULL 運算符。
select * , columnName1+ifnull(columnName2,0) from tableName;

columnName1,columnName2 爲 int 型,當 columnName2 中,有值爲 null 時,columnName1+columnName2=null, ifnull(columnName2,0) 把 columnName2 中 null 值轉爲 0

4.2、實際操作

先新建一個數據表study_tb3,然後新建一條某個字段數據爲NULL,再進行查找

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章