Radbegrensning er et kraftig og vanlig trekk som implementeres av de fleste relasjonsdatabasemotorer. ROW -begrensning refererer til antall rader som en SQL Select -setning kan returnere.
I de fleste tilfeller er det maksimale antall grenser satt av databasemotoren. Vi kan imidlertid overstyre denne verdien i spørringen vår ved hjelp av forskjellige teknikker. Før du endrer antall rader som returneres av en SQL Select -uttalelse, er det godt å vurdere tilgjengelige ressurser i systemet ditt.
Radgrensen er en verdifull funksjon av flere grunner. For det første hjelper det å forhindre at spørsmålene returnerer en overdreven mengde data, som kan bruke opp de verdifulle ressursene og forårsake noen ytelsesproblemer.
For det andre kan det bidra til å forhindre SQL -injeksjonsangrep ved å begrense datamengden som en angriper kan hente ut fra databasen.
Dette innlegget vil diskutere et kort format for å begrense antall poster som blir returnert fra et gitt Oracle -spørring. Husk at det ikke er noen begrensningsklausul i Oracle -databasen som du vil finne i andre databaser som MySQL, PostgreSQL osv.
Oracle Rownum
For at vi skal implementere en grense-lignende klausul, bruker vi Rownum-funksjonen i SQL. Denne funksjonen returnerer antall rader i et gitt resultat.
Eksempelbruk:
Anta at vi har en tabell som inneholder databaseinformasjonen som vist i følgende bilde:
Problem:
Anta at vi bare er interessert i de fem første radene fra bordet.
Løsning:
Vi kan bruke en spørring som vist i følgende utdrag:
Velg * fra databaser der rownum <= 5;I forrige spørring definerer vi en betinget uttalelse som sikrer at det returnerte antall rader er mindre enn eller lik 5. Dette tvinger antall poster fra spørringen for å stoppe klokka fem.
Et eksempelutgang er som følger:
Konklusjon
Oracle Rownum -funksjonen er et kraftig verktøy for å begrense antall rader som returneres i et Oracle SQL -spørring. Det kan brukes på forskjellige måter for å kontrollere antall rader som returneres av en spørring og sikrer at bare de mest relevante dataene returneres.