Oracle Limit rader

Oracle Limit Rader



Radbegränsning är en kraftfull och vanlig funktion som implementeras av de flesta relationsdatabasmotorer. Radbegränsning avser antalet rader som en SQL SELECT-sats kan returnera.

I de flesta fall ställs det maximala antalet gränser in av databasmotorn. Men vi kan åsidosätta detta värde i vår fråga med hjälp av olika tekniker. Innan du ändrar antalet rader som returneras av en SQL SELECT-sats är det bra att överväga de tillgängliga resurserna i ditt system.







Radgränsen är en värdefull funktion av flera anledningar. För det första hjälper det till att förhindra att frågorna returnerar en överdriven mängd data, vilket kan använda upp de värdefulla resurserna och orsaka vissa prestandaproblem.



För det andra kan det hjälpa till att förhindra SQL-injektionsattackerna genom att begränsa mängden data som en angripare kan extrahera från databasen.



Det här inlägget kommer att diskutera ett kort format för att begränsa antalet poster som returneras från en given Oracle-fråga. Kom ihåg att det inte finns någon LIMIT-klausul i Oracle-databasen som du hittar i andra databaser som MySQL, PostgreSQL, etc.





Oracle ROWNUM

För att vi ska implementera en limit-liknande klausul använder vi funktionen rownum i SQL. Denna funktion returnerar antalet rader i ett givet resultat.

Exempel på användning:

Anta att vi har en tabell som innehåller databasinformationen som visas i följande bild:



Problem:

Anta att vi bara är intresserade av de första fem raderna i tabellen.

Lösning:

Vi kan använda en fråga som visas i följande utdrag:

välj * från databaser där ROWNUM <= 5;

I den föregående frågan definierar vi en villkorlig sats som säkerställer att det returnerade antalet rader är mindre än eller lika med 5. Detta tvingar antalet poster från frågan att stanna vid fem.

Ett exempel på utdata är följande:

Slutsats

Oracle ROWNUM-funktionen är ett kraftfullt verktyg för att begränsa antalet rader som returneras i en Oracle SQL-fråga. Den kan användas på olika sätt för att styra antalet rader som returneras av en fråga och säkerställer att endast den mest relevanta informationen returneras.