MySQL從零開始:06 數據檢索

MySQL從零開始:06 數據檢索

  • 1、數據準備
  • 2、限制結果
  • 3、完全限定名
  • 4、排序檢索

所謂數據檢索,就是前面所講的”增刪改查“的”“。

注:本文使用的“行”指數據表中的“記錄”,“列”指數據表中的“字段”。

在第四節《表的增刪改查》中已經介紹了 select 查詢記錄的幾種使用方法:查詢所有行的所有列、查詢指定行的所有列、查詢所有行的指定列和查詢指定行的指定列。本文介紹一些數據檢索的其他高級使用方法。

1、數據準備

首先準備文需要的數據,如下圖所示:

MySQL從零開始:06 數據檢索

01_成績表

使用如下語句進行數據庫的創建、表的創建及記錄的插入:

MySQL從零開始:06 數據檢索

2、限制結果

SELECT 語句返回所有的匹配行,它們可能是指定表中的每個行。如果想要SELECT 語句返回指定的行數,可以使用LIMIT 子句。 LIMIT 接受一個或兩個數字的參數,參數必須是一個整數常量

。如果給定兩個參數,第一個參數指定第一個返回記錄行的偏移量,第二個參數指定返回記錄行的最大數目。

LIMIT 三種語法,第二種和第三種語法完全等價:

1.

MySQL從零開始:06 數據檢索

2.

MySQL從零開始:06 數據檢索

3.

MySQL從零開始:06 數據檢索

注:

  • 初始記錄行的偏移量為 0 。

示例1,檢索前3條記錄:

MySQL從零開始:06 數據檢索

示例2,檢索從偏移量為5的記錄開始後3條記錄:

MySQL從零開始:06 數據檢索

也可以使用下面這種語法:

MySQL從零開始:06 數據檢索

在行數不夠時,LIMIT 中指定要檢索的行數為檢索的最大行數。比如我們從第8條記錄開始取5條記錄,那麼我們只能取到3條記錄:

MySQL從零開始:06 數據檢索

3、完全限定名

假如兩個表中有相同的字段,而我們恰好要查詢其中一個表中的該字段,那麼就會出現二義性:到底要取哪個表中的該字段?為了解決這一問題,可以使用完全限定的名字來引用列,完全限定字段的格式為"

table_name.column_name",例如:

MySQL從零開始:06 數據檢索

表名也是可以被限制的,其格式為"database_name.table_name",例如:

MySQL從零開始:06 數據檢索

4、排序檢索

有時候數據並不是一定要按照數據庫中的存儲順序進行顯示,比如我們想要以商品價格進行排序或者以成績排名進行顯示。

如果我們需要對讀取的數據進行排序,可以使用 MySQL 的 ORDER BY 子句來設定想按哪個字段哪種方式來進行排序,再返回搜索結果。其語法為:

MySQL從零開始:06 數據檢索

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

以數學成績升序方式檢索,可以使用如下命令:

MySQL從零開始:06 數據檢索

以數學成績降序方式檢索,可以使用如下命令:

MySQL從零開始:06 數據檢索

以數學成績升序、語文成績降序和英語成績降序 3 個字段同時檢索:

MySQL從零開始:06 數據檢索

利用排序檢索與 LIMIT 組合,可以取出某字段的最低或最高記錄。

MySQL從零開始:06 數據檢索

點擊“瞭解更多”查看獲取本文所有 MySQL 代碼的方式!!!

MySQL從零開始:06 數據檢索


分享到:


相關文章: