SQL LIMIT, SELECT TOP, FETCH FIRST, ROWNUM utasítások bemutatása példákkal

Ebben a leckében az SQL LIMIT utasítása kerül bemutatásra, amelyet adatbázi-skezelőtől függően szoktak még SELECT TOP-nak, FETCH FIRST-nek vagy ROWNUM-nak is nevezni.

SQL alapok kezdőknek, SQL ismeretek kurzus borítókép

SQL LIMIT, SELECT TOP, FETCH FIRST, ROWNUM utasítások bemutatása példákkal

Ebben a leckében az SQL LIMIT utasítása kerül bemutatásra, amelyet adatbázi-skezelőtől függően szoktak még SELECT TOP-nak, FETCH FIRST-nek vagy ROWNUM-nak is nevezni.

A LIMIT, SELECT TOP, FETCH FIRST, ROWNUM utasítások leírása

A fent említett utasítások segítségével lehet meghatározni a lekérdezés eredményeként visszaadott sorok számát. Ezek az utasítások rendkívül hasznosak lehetnek egy nagy méretű adatbázis esetén, illetve akkor, amikor nincs szükségünk a lekérdezés összes eredményére. Utóbbira kiváló példa lehet egy tabella, amikor csak az első három helyezettet szeretnénk kilistázni.

Melyik adatbázis-kezelő melyik utasítást támogatja?

Ahogy a bevezetőben is szó volt róla, adatbázis-kezelőnként eltér, hogy melyik utasítást támogatják, így érdemes tisztában lenni vele, hogy az általunk használt adatbázis-kezelő melyik utasítást támogatja, hogy ne érjen meglepetés, ha az adatbázis-kezelő nem ismeri fel az utasítást.

  • MySQL: LIMIT
  • Oracle Database: FETCH FIRST, ROWNUM
  • SQL SERVER: SELECT TOP
  • MS Access: SELECT TOP

LIMIT, SELECT TOP, FETCH FIRST, ROWNUM szintaxisok és példák

Ebben a szekcióban kerül bemutatásra a LIMIT, a SELECT TOP, a FETCH FIRST és a ROWNUM szintaxisa. A záradékokhoz tartozó példákat a lent látható táblán és adatokon fogjuk bemutatni.

vasarlok tábla

IDvezeteknevkeresztnevlakhelyszuletesi_ev
1HorváthTamásBudapest1989
2LakatosDezsőDebrecen1961
5LosoncziLénaNyíregyháza2005
6BaloghBeatrixMiskolc1985
9KovácsIstvánBudapest1957
10LakatosBoldizsárDebrecen2009

LIMIT szintaxis

A LIMIT kulcsszót a lekérdezés végén helyezzük el, majd megadjuk, hogy hány rekordot szeretnénk kilistázni.

SELECT oszlop(ok)
FROM tábla
LIMIT szám;
Code language: SQL (Structured Query Language) (sql)

LIMIT példa

Ebben a példában a „vasarlok” tábla első három rekordját szeretnénk kilistázni.

SQL lekérdezés

SELECT * FROM vasarlok
LIMIT 3;
Code language: SQL (Structured Query Language) (sql)

Eredmény

IDvezeteknevkeresztnevlakhelyszuletesi_ev
1HorváthTamásBudapest1989
2LakatosDezsőDebrecen1961
5LosoncziLénaNyíregyháza2005

SELECT TOP szintaktika

A SELECT TOP kulcsszó után megadjuk, hogy hány sort szeretnénk az eredményhalmazban látni.

SELECT TOP szám oszlop(ok)
FROM tábla;
Code language: SQL (Structured Query Language) (sql)

Másik lehetőségként megadhatjuk azt is, hogy a lekérdezés eredményének hány százalékát szeretnénk látni.

SELECT TOP szám PERCENT oszlop(ok)
FROM tábla;
Code language: SQL (Structured Query Language) (sql)

SELECT TOP példa

Az első példában a „vasarlok” tábla összes rekordja közül csak az első hármat szeretnénk lekérdezni.

SQL lekérdezés

SELECT TOP 3 * FROM vasarlok;
Code language: SQL (Structured Query Language) (sql)

Eredmény

IDvezeteknevkeresztnevlakhelyszuletesi_ev
1HorváthTamásBudapest1989
2LakatosDezsőDebrecen1961
5LosoncziLénaNyíregyháza2005

A második példában ugyanazon tábla 50%-át listázzuk ki. Amennyiben WHERE feltételünk is lenne, akkor már nem az összes rekord 50%-át listázná ki, hanem a WHERE feltételnek eleget tevő rekordok felét.

SQL lekérdezés

SELECT TOP 50 PERCENT FROM vasarlok;
Code language: SQL (Structured Query Language) (sql)

Eredmény

IDvezeteknevkeresztnevlakhelyszuletesi_ev
1HorváthTamásBudapest1989
2LakatosDezsőDebrecen1961
5LosoncziLénaNyíregyháza2005

FETCH FIRST szintaxis

A FETCH FIRST és a ROWS ONLY kulcsszó közé kell megadni azt, hogy hány rekordot listázzon ki.

SELECT oszlop(ok)
FROM tábla
FETCH FIRST szám ROWS ONLY;
Code language: SQL (Structured Query Language) (sql)

Csak úgy, mint a SELECT TOP esetében, itt is megadhatjuk százalékos formában a kilistázandó sorok számát.

SELECT oszlop(ok)
FROM tábla
FETCH FIRST szám PERCENT ROWS ONLY;
Code language: SQL (Structured Query Language) (sql)

FETCH FIRST példa

Ahogyan eddig, a következő példákban is csak az első három rekordot kérdezzük le.

SQL lekérdezés

SELECT * FROM vasarlok
FETCH FIRST 3 ROWS ONLY;
Code language: SQL (Structured Query Language) (sql)

Eredmény

IDvezeteknevkeresztnevlakhelyszuletesi_ev
1HorváthTamásBudapest1989
2LakatosDezsőDebrecen1961
5LosoncziLénaNyíregyháza2005

SQL lekérdezés

SELECT * FROM vasarlok
FETCH FIRST 50 PERCENT ROWS ONLY;
Code language: SQL (Structured Query Language) (sql)

Eredmény

IDvezeteknevkeresztnevlakhelyszuletesi_ev
1HorváthTamásBudapest1989
2LakatosDezsőDebrecen1961
5LosoncziLénaNyíregyháza2005

ROWNUM szintaktika

A ROWNUM kulcsszót a WHERE záradék után kell megadni egy operátorral egyetemben, amely lehet: >, >=, <, <=, =. Az operátort követi a szám.

SELECT oszlop(ok)
FROM tábla
WHERE ROWNUM = szám;
Code language: SQL (Structured Query Language) (sql)

ROWNUM példa

A korábbi példákhoz hasonlóan itt is az első három rekordot listáztattuk ki.

SQL lekérdezés

SELECT * FROM vasarlok
WHERE ROWNUM = 3;
Code language: SQL (Structured Query Language) (sql)

Eredmény

IDvezeteknevkeresztnevlakhelyszuletesi_ev
1HorváthTamásBudapest1989
2LakatosDezsőDebrecen1961
5LosoncziLénaNyíregyháza2005

Ha hasznos volt számodra, akkor kérlek oszd meg másokkal is, hogy ezzel támogass minket!