- 1、數據準備
- 2、限制結果
- 3、完全限定名
- 4、排序檢索
所謂數據檢索,就是前面所講的”增刪改查“的”查“。
注:本文使用的“行”指數據表中的“記錄”,“列”指數據表中的“字段”。
在第四節《表的增刪改查》中已經介紹了 select 查詢記錄的幾種使用方法:查詢所有行的所有列、查詢指定行的所有列、查詢所有行的指定列和查詢指定行的指定列。本文介紹一些數據檢索的其他高級使用方法。
1、數據準備
首先準備文需要的數據,如下圖所示:
使用如下語句進行數據庫的創建、表的創建及記錄的插入:
2、限制結果
SELECT 語句返回所有的匹配行,它們可能是指定表中的每個行。如果想要SELECT 語句返回指定的行數,可以使用LIMIT 子句。 LIMIT 接受一個或兩個數字的參數,參數必須是一個整數常量 。如果給定兩個參數,第一個參數指定第一個返回記錄行的偏移量,第二個參數指定返回記錄行的最大數目。
LIMIT 三種語法,第二種和第三種語法完全等價:
1.
2.
3.
注:
- 初始記錄行的偏移量為 0 。
示例1,檢索前3條記錄:
示例2,檢索從偏移量為5的記錄開始後3條記錄:
也可以使用下面這種語法:
在行數不夠時,LIMIT 中指定要檢索的行數為檢索的最大行數。比如我們從第8條記錄開始取5條記錄,那麼我們只能取到3條記錄:
3、完全限定名
假如兩個表中有相同的字段,而我們恰好要查詢其中一個表中的該字段,那麼就會出現二義性:到底要取哪個表中的該字段?為了解決這一問題,可以使用完全限定的名字來引用列,完全限定字段的格式為"
table_name.column_name",例如:表名也是可以被限制的,其格式為"database_name.table_name",例如:
4、排序檢索
有時候數據並不是一定要按照數據庫中的存儲順序進行顯示,比如我們想要以商品價格進行排序或者以成績排名進行顯示。
如果我們需要對讀取的數據進行排序,可以使用 MySQL 的 ORDER BY 子句來設定想按哪個字段哪種方式來進行排序,再返回搜索結果。其語法為:
- 可以使用任何字段來作為排序的條件,從而返回排序後的查詢結果。
- 可以設定多個字段來排序。
- 可以使用 ASC 或 DESC 關鍵字來設置查詢結果是按升序或降序排列。 默認情況下,它是按升序排列。
- 可以添加 WHERE...LIKE 子句來設置條件。
以數學成績升序方式檢索,可以使用如下命令:
以數學成績降序方式檢索,可以使用如下命令:
以數學成績升序、語文成績降序和英語成績降序 3 個字段同時檢索:
利用排序檢索與 LIMIT 組合,可以取出某字段的最低或最高記錄。
點擊“瞭解更多”查看獲取本文所有 MySQL 代碼的方式!!!
閱讀更多 C與Python實戰 的文章