Oracle Limit Rows

Oracle Limit Rows



Rivien rajoittaminen on tehokas ja yleinen ominaisuus, jonka useimmat relaatiotietokantakoneet toteuttavat. Rivirajoitus viittaa rivien määrään, jonka SQL SELECT -käsky voi palauttaa.

Useimmissa tapauksissa tietokantakone asettaa rajoitusten enimmäismäärän. Voimme kuitenkin ohittaa tämän arvon kyselyssämme eri tekniikoilla. Ennen kuin muutat SQL SELECT -käskyn palauttamien rivien määrää, on hyvä ottaa huomioon järjestelmässäsi käytettävissä olevat resurssit.







Rivirajoitus on arvokas ominaisuus useista syistä. Ensinnäkin se auttaa estämään kyselyitä palauttamasta liikaa dataa, mikä voi kuluttaa arvokkaita resursseja ja aiheuttaa suorituskykyongelmia.



Toiseksi se voi auttaa estämään SQL-injektiohyökkäykset rajoittamalla tietomäärää, jonka hyökkääjä voi poimia tietokannasta.



Tässä viestissä käsitellään lyhyttä muotoa tietueiden määrän rajoittamiseksi, jotka palautetaan tietystä Oracle-kyselystä. Muista, että Oraclen tietokannassa ei ole LIMIT-lausetta, kuten löydät muista tietokannoista, kuten MySQL, PostgreSQL jne.





Oracle ROWNUM

Käytämme SQL:ssä rownum-funktiota, jotta voimme toteuttaa rajamaisen lausekkeen. Tämä funktio palauttaa tietyn tuloksen rivien määrän.

Käyttöesimerkki:

Oletetaan, että meillä on taulukko, joka sisältää tietokantatiedot seuraavan kuvan mukaisesti:



Ongelma:

Oletetaan, että olemme kiinnostuneita vain taulukon viidestä ensimmäisestä rivistä.

Ratkaisu:

Voimme käyttää kyselyä seuraavan katkelman mukaisesti:

valitse * tietokannoista, joissa ROWNUM <= 5;

Edellisessä kyselyssä määritimme ehdollisen lauseen, joka varmistaa, että palautettu rivien määrä on pienempi tai yhtä suuri kuin 5. Tämä pakottaa kyselyn tietueiden määrän pysähtymään viiteen.

Esimerkkituloste on seuraava:

Johtopäätös

Oracle ROWNUM -funktio on tehokas työkalu, joka rajoittaa Oracle SQL -kyselyssä palautettavien rivien määrää. Sitä voidaan käyttää monin eri tavoin ohjaamaan kyselyn palauttamien rivien määrää ja varmistaa, että vain tärkeimmät tiedot palautetaan.