原創|行業資訊|編輯:莫成敏|2019-08-20 13:49:47.007|閱讀 1069 次
概述:SQL LIMIT子句限制SELECT語句返回的行數。對于SQL Server或MSAccess等Microsoft數據庫,可以使用SELECT TOP語句來限制結果,這是Microsoft專有的SELECT LIMIT語句。但是,對于大多數關系數據庫(DBMS),包括MySQL / MariaDB、PostgreSQL和Oracle,SQL LIMIT子句可以解決幾個問題。在這篇文章中,我們將使用Navicat for PostgreSQL來探索其中的一些問題。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
Navicat for PostgreSQL是一套專為PostgreSQL設計的強大數據庫管理及開發工具。它可以在PostgreSQL數據庫7.5以上的版本中運行,并且支持大部份最新的PostgreSQL功能,包括觸發器、函數檢索及權限管理等。Navicat的的功能不僅可以滿足專業開發人員的所有需求,而且對PostgreSQL的新手來說也相當容易學習。
SQL LIMIT子句限制SELECT語句返回的行數。對于SQL Server或MSAccess等Microsoft數據庫,可以使用SELECT TOP語句來限制結果,這是Microsoft專有的SELECT LIMIT語句。但是,對于大多數關系數據庫(DBMS),包括MySQL / MariaDB、PostgreSQL和Oracle,SQL LIMIT子句可以解決幾個問題。在這篇文章中,我們將使用Navicat for PostgreSQL來探索其中的一些問題。
保持結果集可管理
在許多生產和測試數據庫中,表的大小通常達到數百萬行并且具有數十列。因此,對數據庫運行SELECT *查詢絕不是一個好主意。將結果保持在100或1000有助于將結果集保持在更容易消化的大小。
Navicat開發和管理工具默認情況下自動限制結果集,以防止數據庫服務器過度緊張。打開表格時,您可以看到它的運行情況。在應用程序窗口的底部,顯示Navicat執行以獲取表行的SQL。它以“LIMIT 1000 OFFSET 0”結束,這意味著只顯示前1000條記錄。
您可以在RECORDS選項屏幕上更改要顯示或關閉限制的默認記錄數:
前N個查詢
顧名思義,前N個查詢是那些試圖從結果集中查找最大記錄數的查詢。這些查詢可以是top 1,top 3,top 5,top 10或top [任意]數字。一些常見的例子是:
找到薪酬最高的10名員工
找到前20名最賺錢的客戶
找到系統上的前3個用戶
僅使用ORDER BY和WHERE子句很難處理這些查詢,但不使用LIMIT子句。這是一個例子:
前5個唯一作業ID
假設我們想在表中找到最頂層的唯一作業ID。這是一個執行此操作的查詢:
DISTINCT關鍵字確保從結果中刪除重復的ID。
最接近給定日期的行
可以使用LIMIT定位最接近給定日期的行。您只需將行日期與給定日期進行比較,對結果進行排序,并將結果限制為您希望查看的行數。這是一個返回其creation_date大于'2018-01-01'的行的查詢:
在這種情況下,2018-01-02是最接近的日期。
底部N個查詢
前N個查詢的推論是底部N個查詢。這些是嘗試從結果集中查找底部記錄數的查詢。我們可以很容易地將我們的Top查詢轉換為它們的Bottom等價物!
底部5個唯一作業ID
要返回底部5個唯一作業ID,您需要做的就是刪除ORDER BY子句中的DESC修飾符。這將按升序(ASC)順序排序記錄,默認情況下:
在給定日期之下的最近行
在給定日期之前找到最近的行同樣相當容易。我們只需要將大于“>”的運算符更改為小于“<”,并按降序(DESC)順序重新排序結果:
想要購買Navicat for PostgreSQL正版授權,或了解更多產品信息請點擊
掃描關注慧聚IT微信公眾號,及時獲取最新動態及最新資訊
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn