Oracle Limit Rows

Oracle Limit Rows



Obmedzenie riadkov je výkonná a bežná funkcia, ktorú implementuje väčšina relačných databázových strojov. Obmedzenie riadkov sa týka počtu riadkov, ktoré môže vrátiť príkaz SQL SELECT.

Vo väčšine prípadov je maximálny počet limitov nastavený databázovým strojom. Túto hodnotu však môžeme v našom dotaze prepísať pomocou rôznych techník. Pred zmenou počtu riadkov, ktoré vráti príkaz SQL SELECT, je dobré zvážiť dostupné prostriedky vo vašom systéme.







Obmedzenie počtu riadkov je cenná funkcia z niekoľkých dôvodov. Po prvé, pomáha zabrániť tomu, aby dopyty vracali nadmerné množstvo údajov, čo môže spotrebovať cenné zdroje a spôsobiť problémy s výkonom.



Po druhé, môže pomôcť zabrániť útokom SQL injection obmedzením množstva údajov, ktoré môže útočník extrahovať z databázy.



Tento príspevok bude diskutovať o krátkom formáte na obmedzenie počtu záznamov, ktoré sa vrátia z daného dotazu Oracle. Pamätajte, že v databáze Oracle nie je žiadna klauzula LIMIT, ktorú nájdete v iných databázach, ako je MySQL, PostgreSQL atď.





Oracle ROWNUM

Aby sme implementovali klauzulu podobnú limitu, používame funkciu rownum v SQL. Táto funkcia vráti počet riadkov v danom výsledku.

Príklad použitia:

Predpokladajme, že máme tabuľku, ktorá obsahuje informácie o databáze, ako je znázornené na nasledujúcom obrázku:



problém:

Predpokladajme, že nás zaujíma iba prvých päť riadkov tabuľky.

Riešenie:

Môžeme použiť dotaz, ako je uvedené v nasledujúcom úryvku:

vyberte * z databáz, kde ROWNUM <= 5;

V predchádzajúcom dopyte definujeme podmienený príkaz, ktorý zaisťuje, že vrátený počet riadkov bude menší alebo rovný 5. Tým sa počet záznamov z dopytu zastaví na hodnote päť.

Príklad výstupu je nasledujúci:

Záver

Funkcia Oracle ROWNUM je výkonný nástroj na obmedzenie počtu riadkov, ktoré sa vrátia v dotaze Oracle SQL. Dá sa použiť rôznymi spôsobmi na riadenie počtu riadkov, ktoré sú vrátené dotazom, a zaisťuje, že sa vrátia len tie najrelevantnejšie údaje.