目錄
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,再進行查找