Az SQL SELECT DISTINCT záradék használata (Adatbázis-lekérdezések utasításai példákkal)
Ebben az SQL leckében a SELECT DISTINCT-tel fogunk foglalkozni, melynek a neve is jól mutatja, hogy a SELECT utasításhoz van köze.
Mi az a SELECT DISTINCT?
A SELECT DISTINCT utasítást ugyanúgy a lekérdezések megalkotásához használjuk, mint a SELECT-et, azzal a különbséggel, hogy a SELECT DISTINCT csak a különböző, azaz egyedi, eltérő értékeket ad vissza.
Egy adatbázistáblában gyakran előfordul, hogy redundáns, azaz duplikált, ismétlődő tartalom található. Ha ezt a redundanciát nem tudjuk megszüntetni vagy nem akarjuk, akkor lehetőségünk van a lekérdezések során olyan lekérdező utasítást használni, amely automatikusan kiszűri az ismétlődő adatokat.
A SELECT DISTINCT szintaxisa
SELECT DISTINCT oszlop(ok)
FROM tábla;
Code language: SQL (Structured Query Language) (sql)
A fenti kódrészletben nekünk valójában csak az első sor az érdekes. A SELECT DISTINCT után megadjuk azt vagy azokat az oszlopokat, amelyek esetében egyediséget szeretnénk. Ha több mezőt vagy oszlopot adunk meg, akkor csak abban az esetben fog két rekordot azonosnak tekinteni, ha az összes kiválasztott oszlop értéke megegyezik. Nézzünk egy példát erre vonatkozólag.
SELECT DISTINCT példák
Lentebb kettő példán keresztül mutatjuk be a SELECT DISTINCT működését, az első példában csak egyetlen egy oszlopot fogunk górcső alá venni, míg a másodikban már többet is.
Példa #1: SELECT DISTINCT egy mező esetében
Az első példában látni fogjuk, hogy a SELECT DISTINCT-nek csak egyetlen egy mezőt adtunk meg, a vezetéknevet. A táblában kettő Lakatos van, de mivel nekünk csak az egyedi vezetéknevek kellenek, így csak egyszer kerül majd kilistázásra.
vasarlok tábla
vezeteknev | keresztnev | lakhely | szuletesi_ev |
---|---|---|---|
Horváth | Tamás | Budapest | 1989 |
Lakatos | Dezső | Debrecen | 1961 |
Losonczi | Léna | Nyíregyháza | 2005 |
Balogh | Beatrix | Miskolc | 1985 |
Kovács | István | Budapest | 1957 |
Lakatos | Boldizsár | Debrecen | 2009 |
SQL lekérdezés
SELECT DISTINCT vezeteknev
FROM vasarlok
Code language: SQL (Structured Query Language) (sql)
Eredmény
vezetéknév |
---|
Horváth |
Lakatos |
Losonczi |
Balogh |
Kovács |
Példa #2: SELECT DISTINCT több mező esetében
Ebben a példában pedig kettő mezőt adunk meg a SELECT DISTINCT után, szóval csak abban az esetben nem fog valami ismételten kilistázásra kerülni, hogy ha a vezetéknév és a keresztnév is teljesmértékben megegyezik. Ha ezen két mező közül csak az egyik egyezik, akkor ugyanúgy megjelenik a lekérdezés eredményében.
vasarlok tábla
vezeteknev | keresztnev | lakhely | szuletesi_ev |
---|---|---|---|
Horváth | Tamás | Budapest | 1989 |
Lakatos | Dezső | Debrecen | 1961 |
Losonczi | Léna | Nyíregyháza | 2005 |
Balogh | Beatrix | Miskolc | 1985 |
Kovács | István | Budapest | 1957 |
Lakatos | Boldizsár | Debrecen | 2009 |
SQL lekérdezés
SELECT DISTINCT vezeteknev, keresztnev
FROM vasarlok
Code language: SQL (Structured Query Language) (sql)
Eredmény
vezeteknev | keresztnev |
---|---|
Horváth | Tamás |
Lakatos | Dezső |
Losonczi | Léna |
Balogh | Beatrix |
Kovács | István |
Lakatos | Boldizsár |