翻譯|使用教程|編輯:吳園園|2020-06-16 14:24:24.223|閱讀 421 次
概述:SQL LIMIT子句限制SELECT語句返回的行數(shù)。對于SQL Server或MSAccess之類的Microsoft數(shù)據(jù)庫,您可以使用SELECT TOP語句來限制結(jié)果,這是Microsoft專有的等效于SELECT LIMIT語句。但是,對于大多數(shù)關(guān)系數(shù)據(jù)庫(DBMS),包括MySQL / MariaDB,PostgreSQL和Oracle,SQL LIMIT子句可以解決幾個問題。在今天的文章中,我們將使用Navicat for PostgreSQL探索其中的一些。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
Navicat for PostgreSQL是一套專為PostgreSQL設(shè)計的強(qiáng)大數(shù)據(jù)庫管理及開發(fā)工具。它可以在PostgreSQL數(shù)據(jù)庫7.5以上的版本中運(yùn)行,并且支持大部份最新的PostgreSQL功能,包括觸發(fā)器、函數(shù)檢索及權(quán)限管理等。Navicat的的功能不僅可以滿足專業(yè)開發(fā)人員的所有需求,而且對PostgreSQL的新手來說也相當(dāng)容易學(xué)習(xí)。
點(diǎn)擊下載Navicat for PostgreSQL最新試用版
使用SQL限制關(guān)鍵字
SQL LIMIT子句限制SELECT語句返回的行數(shù)。對于SQL Server或MSAccess之類的Microsoft數(shù)據(jù)庫,您可以使用SELECT TOP語句來限制結(jié)果,這是Microsoft專有的等效于SELECT LIMIT語句。但是,對于大多數(shù)關(guān)系數(shù)據(jù)庫(DBMS),包括MySQL / MariaDB,PostgreSQL和Oracle,SQL LIMIT子句可以解決幾個問題。在今天的文章中,我們將使用Navicat for PostgreSQL探索其中的一些。
使結(jié)果集易于管理
在許多生產(chǎn)和測試數(shù)據(jù)庫中,表大小通常達(dá)到數(shù)百萬行,并且有數(shù)十列。因此,對數(shù)據(jù)庫運(yùn)行SELECT *查詢絕不是一個好主意。將結(jié)果減少到一百或一千個有助于將結(jié)果集減少到更容易消化的大小。
Navicat開發(fā)和管理工具默認(rèn)情況下會自動限制結(jié)果集,以防止使數(shù)據(jù)庫服務(wù)器緊張。打開表時,您可以看到它的運(yùn)行情況。在應(yīng)用程序窗口的底部,顯示了Navicat執(zhí)行以獲取表行的SQL。它以“ LIMIT 1000 OFFSET 0”結(jié)尾,這意味著僅顯示前1000條記錄。
您可以在“ RECORDS選項”屏幕上更改默認(rèn)顯示的記錄數(shù),以完全顯示或關(guān)閉限制:
前N個查詢
顧名思義,前N個查詢是嘗試從結(jié)果集中查找記錄數(shù)最多的查詢。這可以是前1名,前3名,前5名,前10名或前[any]個數(shù)字。一些常見的示例是:
僅使用ORDER BY和WHERE子句而不使用LIMIT子句很難完成這些查詢。這是一個例子:
前5個唯一的作業(yè)ID
假設(shè)我們想在表中找到最重要的唯一作業(yè)ID。這是一個執(zhí)行此操作的查詢:
DISTINCT關(guān)鍵字可確保從結(jié)果中刪除重復(fù)的ID。
給定日期最近的行
可以使用LIMIT查找最接近給定日期的行。您只需將行日期與給定日期進(jìn)行比較,對結(jié)果進(jìn)行排序,然后將結(jié)果限制為想要查看的行數(shù)。這是一個查詢,其返回的creation_date大于“ 2018-01-01”的行:
在這種情況下,最接近的日期是2018-01-02。
底部N個查詢
前N個查詢的推論是后N個查詢。這些查詢試圖從結(jié)果集中找到最低的記錄數(shù)。我們可以輕松地將“熱門”查詢轉(zhuǎn)換為它們的“等效”查詢!
底部5個唯一的作業(yè)ID
要返回最后5個唯一的作業(yè)ID,您需要做的就是在ORDER BY子句中刪除DESC修飾符。默認(rèn)情況下,這將以升序(ASC)順序?qū)τ涗涍M(jìn)行排序:
給定日期以下的最近行
在給定日期之前查找最接近的行同樣非常容易。我們只需要將大于'>'運(yùn)算符更改為小于'<'并以降序(DESC)順序?qū)Y(jié)果進(jìn)行重新排序:
結(jié)論
在今天的博客中,我們使用Navicat for PostgreSQL探索了LIMIT子句的幾種用法。想嘗試使用Navicat for PostgreSQL嗎?您可以免費(fèi)完全評估14天!
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自: