
- SQL 教程
- SQL - 首頁
- SQL - 概述
- SQL - RDBMS 概念
- SQL - 資料庫
- SQL - 語法
- SQL - 資料型別
- SQL - 運算子
- SQL - 表示式
- SQL 資料庫
- SQL - 建立資料庫
- SQL - 刪除資料庫
- SQL - 選擇資料庫
- SQL - 重新命名資料庫
- SQL - 顯示資料庫
- SQL - 備份資料庫
- SQL 表
- SQL - 建立表
- SQL - 顯示錶
- SQL - 重命名錶
- SQL - 截斷表
- SQL - 克隆表
- SQL - 臨時表
- SQL - 修改表
- SQL - 刪除表
- SQL - 刪除表
- SQL - 約束
- SQL 查詢
- SQL - 插入查詢
- SQL - 選擇查詢
- SQL - Select Into
- SQL - Insert Into Select
- SQL - 更新查詢
- SQL - 刪除查詢
- SQL - 排序結果
- SQL 檢視
- SQL - 建立檢視
- SQL - 更新檢視
- SQL - 刪除檢視
- SQL - 重新命名檢視
- SQL 運算子和子句
- SQL - Where 子句
- SQL - Top 子句
- SQL - Distinct 子句
- SQL - Order By 子句
- SQL - Group By 子句
- SQL - Having 子句
- SQL - AND & OR
- SQL - BOOLEAN (BIT) 運算子
- SQL - LIKE 運算子
- SQL - IN 運算子
- SQL - ANY,ALL 運算子
- SQL - EXISTS 運算子
- SQL - CASE
- SQL - NOT 運算子
- SQL - 不等於
- SQL - IS NULL
- SQL - IS NOT NULL
- SQL - NOT NULL
- SQL - BETWEEN 運算子
- SQL - UNION 運算子
- SQL - UNION 與 UNION ALL
- SQL - INTERSECT 運算子
- SQL - EXCEPT 運算子
- SQL - 別名
- SQL 連線
- SQL - 使用連線
- SQL - 內連線
- SQL - 左連線
- SQL - 右連線
- SQL - 交叉連線
- SQL - 全連線
- SQL - 自連線
- SQL - 刪除連線
- SQL - 更新連線
- SQL - 左連線與右連線
- SQL - Union 與 Join
- SQL 金鑰
- SQL - 唯一鍵
- SQL - 主鍵
- SQL - 外部索引鍵
- SQL - 複合鍵
- SQL - 備用鍵
- SQL 索引
- SQL - 索引
- SQL - 建立索引
- SQL - 刪除索引
- SQL - 顯示索引
- SQL - 唯一索引
- SQL - 叢集索引
- SQL - 非叢集索引
- 高階 SQL
- SQL - 萬用字元
- SQL - 註釋
- SQL - 注入
- SQL - 託管
- SQL - Min & Max
- SQL - Null 函式
- SQL - 檢查約束
- SQL - 預設約束
- SQL - 儲存過程
- SQL - NULL 值
- SQL - 事務
- SQL - 子查詢
- SQL - 處理重複項
- SQL - 使用序列
- SQL - 自動遞增
- SQL - 日期和時間
- SQL - 遊標
- SQL - 公共表表達式
- SQL - Group By 與 Order By
- SQL - IN 與 EXISTS
- SQL - 資料庫調整
- SQL 函式參考
- SQL - 日期函式
- SQL - 字串函式
- SQL - 聚合函式
- SQL - 數值函式
- SQL - 文字和影像函式
- SQL - 統計函式
- SQL - 邏輯函式
- SQL - 遊標函式
- SQL - JSON 函式
- SQL - 轉換函式
- SQL - 資料型別函式
- SQL 有用資源
- SQL - 問答
- SQL - 快速指南
- SQL - 有用函式
- SQL - 有用資源
- SQL - 討論
SQL - LIMIT 子句
SQL LIMIT 子句
SQL LIMIT 子句用於限制 SELECT 語句返回的行數。此外,我們還可以將其與 UPDATE 和 DELETE 語句一起使用以限制(約束)結果記錄。
例如,如果資料庫表中儲存了大量行,並且您只想獲取一定數量的行,例如前 10 行,則可以在查詢中使用 LIMIT 子句。
Microsoft SQL Server 不支援 LIMIT 子句。我們可以使用 TOP 子句從 MS SQL Server 資料庫中的表中選擇有限數量的記錄。類似地,Oracle 支援 ROWNUM 子句來限制表的記錄。
語法
以下是帶有 SELECT 語句的 SQL LIMIT 子句的基本語法:
SELECT column_name(s) FROM table_name WHERE [condition] LIMIT value;
其中,value 是要從頂部返回的行數。
示例
假設我們建立了一個名為 CUSTOMERS 的表,其中包含客戶的個人詳細資訊,包括他們的姓名、年齡、地址和薪水等,如下所示:
CREATE TABLE CUSTOMERS ( ID INT NOT NULL, NAME VARCHAR (20) NOT NULL, AGE INT NOT NULL, ADDRESS CHAR (25), SALARY DECIMAL (18, 2), PRIMARY KEY (ID) );
現在,使用 INSERT 語句將值插入此表,如下所示:
INSERT INTO CUSTOMERS VALUES (1, 'Ramesh', 32, 'Ahmedabad', 2000.00 ), (2, 'Khilan', 25, 'Delhi', 1500.00 ), (3, 'Kaushik', 23, 'Kota', 2000.00 ), (4, 'Chaitali', 25, 'Mumbai', 6500.00 ), (5, 'Hardik', 27, 'Bhopal', 8500.00 ), (6, 'Komal', 22, 'Hyderabad', 4500.00 ), (7, 'Muffy', 24, 'Indore', 10000.00 );
表將建立如下:
ID | 姓名 | 年齡 | 地址 | 薪水 |
---|---|---|---|---|
1 | Ramesh | 32 | Ahmedabad | 2000.00 |
2 | Khilan | 25 | Delhi | 1500.00 |
3 | Kaushik | 23 | Kota | 2000.00 |
4 | Chaitali | 25 | Mumbai | 6500.00 |
5 | Hardik | 27 | Bhopal | 8500.00 |
6 | Komal | 22 | Hyderabad | 4500.00 |
7 | Muffy | 24 | Indore | 10000.00 |
現在,我們使用 LIMIT 子句從 CUSTOMERS 表中獲取前 3 條記錄,無需指定任何子句(以過濾資料),例如 WHERE、ORDER BY 等:
SELECT * FROM CUSTOMERS LIMIT 3;
輸出
這將產生以下結果:
ID | 姓名 | 年齡 | 地址 | 薪水 |
---|---|---|---|---|
1 | Ramesh | 32 | Ahmedabad | 2000.00 |
2 | Khilan | 25 | Delhi | 1500.00 |
3 | Kaushik | 23 | Kota | 2000.00 |
帶有 ORDER BY 子句的 LIMIT
SQL 中的 ORDER BY 子句用於按升序或降序對查詢的結果集進行排序。我們可以在 MySQL 資料庫中將其與 LIMIT 子句一起使用以按排序順序檢索(或更新或刪除等)前 N 個記錄。
示例
使用以下查詢,我們按排序順序檢索 CUSTOMERS 表的前 4 條記錄。在這裡,我們根據 AGE 列按升序對錶進行排序:
SELECT * FROM CUSTOMERS ORDER BY AGE ASC LIMIT 4;
輸出
我們獲得如下結果:
ID | 姓名 | 年齡 | 地址 | 薪水 |
---|---|---|---|---|
6 | Komal | 22 | Hyderabad | 4500.00 |
3 | Kaushik | 23 | Kota | 2000.00 |
7 | Muffy | 24 | Indore | 10000.00 |
2 | Khilan | 25 | Delhi | 1500.00 |
注意 - ORDER BY 子句預設按升序排序資料。因此,如果我們需要按降序對 SQL 中的資料進行排序,則必須使用 DESC 關鍵字。
帶有 WHERE 子句的 LIMIT
我們可以將 LIMIT 子句與 WHERE 子句一起使用以限制給定數量的行並根據指定的條件對其進行過濾。
示例
以下查詢從 CUSTOMERS 表中檢索前兩個客戶的詳細資訊,其姓名以 K 開頭:
SELECT * FROM CUSTOMERS WHERE NAME LIKE 'k%' LIMIT 2;
輸出
產生以下結果:
ID | 姓名 | 年齡 | 地址 | 薪水 |
---|---|---|---|---|
2 | Khilan | 25 | Delhi | 1500.00 |
3 | Kaushik | 23 | Kota | 2000.00 |
LIMIT 子句與 DELETE 語句
在 MySQL 資料庫中,LIMIT 子句可以與 DELETE 語句一起使用以刪除滿足給定條件的特定數量的行。
示例
在以下查詢中,我們使用帶有 LIMIT 子句的 DELETE 語句。在這裡,我們刪除了前 2 個姓名以 K 開頭的客戶:
DELETE FROM CUSTOMERS WHERE NAME LIKE 'K%' LIMIT 2;
輸出
我們得到如下所示的輸出:
Query OK, 2 rows affected (0.01 sec)
驗證
我們可以透過使用 SELECT 語句檢索其內容來驗證更改是否反映在表中。以下是顯示 CUSTOMERS 表中記錄的查詢:
SELECT * FROM CUSTOMERS;
表顯示如下:
ID | 姓名 | 年齡 | 地址 | 薪水 |
---|---|---|---|---|
1 | Ramesh | 32 | Ahmedabad | 2000.00 |
4 | Chaitali | 25 | Mumbai | 6500.00 |
5 | Hardik | 27 | Bhopal | 8500.00 |
7 | Muffy | 24 | Indore | 10000.00 |