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