轉帖|使用教程|編輯:鮑佳佳|2021-03-19 09:57:49.247|閱讀 478 次
概述:SQL LIMIT 子句可以約束 SELECT 語句返回的行數。對于 SQL Server 或 MS Access 等 Microsoft 數據庫,可以使用 SELECT TOP 語句來限制結果。但是,對于大多數關系數據庫(DBMS),包括 MySQL/MariaDB、PostgreSQL 和 Oracle,SQL LIMIT 子句可以解決多個問題。在今天的文章中,我們將使用 Navicat for PostgreSQL 來探索其中的一些 LIMIT 的用法。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
SQL LIMIT 子句可以約束 SELECT 語句返回的行數。對于 SQL Server 或 MS Access 等 Microsoft 數據庫,可以使用 SELECT TOP 語句來限制結果,這是 Microsoft 專有的 SELECT LIMIT 語句。但是,對于大多數關系數據庫(DBMS),包括 MySQL/MariaDB、PostgreSQL 和 Oracle,SQL LIMIT 子句可以解決多個問題。在今天的文章中,我們將使用 Navicat for PostgreSQL 來探索其中的一些 LIMIT 的用法。
Navicat for PostgreSQL 是一套易于使用的圖形化 PostgreSQL 數據庫管理工具。使用強勁的 SQL 編輯器創建和運行查詢、函數和使用多功能的數據編輯工具管理你的數據。Navicat for PostgreSQL 能連接到任何本機或遠程版本 7.3 或以上的 PostgreSQL 數據庫服務器,并支持所有 PostgreSQL 數據庫對象。點擊獲取正版授權>>
點擊下載Navicat for PostgreSQL 最新試用版
保持結果集易于管理在許多生產和測試數據庫中,表大小通常達到數百萬行并且有數十列。因此,對數據庫運行 SELECT * 查詢絕不是一個好主意。將結果保持在一百或一千行可以將結果集保持在更易消化的大小。
Navicat 開發和管理工具默認自動限制結果集,以防止對數據庫服務器造成過度負擔。當打開表時,你可以看到它的運行情況。在應用程序窗口的底部,顯示 Navicat 獲取表行時運行的SQL。它以“LIMIT 1000 OFFSET 0”結束,這意味著只顯示前 1000 條記錄。
你可以在“記錄”選項屏幕上更改默認要顯示的記錄數或關閉限制:
最前 N 個的查詢
顧名思義,最前 N 的查詢是那些試圖從結果集中查找最前數目的記錄的查詢。這可能是最前 1 、最前 3 、最前 5 、最前 10 或最前 [任意] 數字。一些常見的例子是:
僅使用 ORDER BY 和WHERE 子句而不使用 LIMIT 子句是很難處理這些查詢。這是一個例子:
最前 5 個唯一的 Job ID
假設我們想在表中找到最前的唯一 Job ID。這是執行此操作的查詢:
DISTINCT 關鍵字確保從結果中刪除重復的 ID。
給定日期最接近的行你可以使用 LIMIT 找到給定日期最接近的行。只需將行日期與給定日期進行比較,對結果進行排序,并將結果限制為你希望查看的行數。以下的查詢返回 creation_date 大于 '2018-01-01' 的行:
在這種情況下,2018-01-02 是最接近的日期。
最后 N 個的查詢最前 N 個的查詢的必然產物是是最后 N 個的查詢。這是嘗試從結果集中查找最后數目的記錄的查詢。我們可以很容易地將我們的“最前”查詢轉換為等效的“最后”查詢!
最后 5 個唯一的 Job ID
若要返回最后 5 個唯一 Job ID,你需要做的就是刪除 ORDER BY 子句中的 DESC 修飾符。默認情況下,這將按升序(ASC)順序排序記錄:
給定日期之前最接近的行
在給定日期之前找到最接近的行同樣相當容易。我們只需要將大于 '>' 的運算符更改為小于 '<',并按降序(DESC)順序重新排序結果:
在今天的文章中,我們使用 Navicat for PostgreSQL 探索了 LIMIT 子句的一些用法。你都學會了嗎?趕緊點擊下載使用吧!點擊獲取更多免費的文章教程!
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自: