Sql-lekérdezésekkel kiválasztott rekordokat ad meg.
Szintaxis
SELECT [ALL | DISTINCT | DISTINCTROW | [TOP n [PERCENT]]]
FROM táblaA predikátumokat tartalmazó SELECT utasítás a következő részekből áll:
Rész |
Leírás |
ALL |
Feltételezzük, ha nem tartalmazza az egyik predikátumot. A Microsoft Access adatbázismotor az SQL-utasítás feltételeinek megfelelő összes rekordot kiválasztja. Az alábbi két példa egyenértékű, és az Employees tábla összes rekordjának visszaadása:
|
DISTINCT |
Kihagyja azokat a rekordokat, amelyek ismétlődő adatokat tartalmaznak a kijelölt mezőkben. Ahhoz, hogy a lekérdezés eredményei szerepeljenek, a SELECT utasításban felsorolt mezők értékeinek egyedinek kell lenniük. Előfordulhat például, hogy egy Alkalmazottak táblában több alkalmazott is ugyanazzal a vezetéknévvel rendelkezik. Ha két rekord tartalmazza Smitht a LastName mezőben, a következő SQL-utasítás csak egy olyan rekordot ad vissza, amely Tartalmazza Smitht:
Ha kihagyja a DISTINCT függvényt, ez a lekérdezés mindkét Smith-rekordot visszaadja. Ha a SELECT záradék egynél több mezőt tartalmaz, az összes mező értékeinek egyedinek kell lenniük ahhoz, hogy egy adott rekord szerepeljen az eredmények között. A DISTINCT függvényt használó lekérdezés kimenete nem frissíthető, és nem tükrözi a többi felhasználó későbbi módosításait. |
DISTINCTROW |
Kihagyja a teljes ismétlődő rekordokon alapuló adatokat, nem csak a duplikált mezőket. Létrehozhat például egy lekérdezést, amely a CustomerID mező Vevők és Rendelések tábláját kapcsolja össze. A Vevők tábla nem tartalmaz duplikált CustomerID mezőket, de a Rendelések tábla igen, mert minden ügyfél több megrendeléssel is rendelkezhet. Az alábbi SQL-utasítás bemutatja, hogyan hozhatja létre a DISTINCTROW segítségével azoknak a vállalatoknak a listáját, amelyek legalább egy megrendeléssel rendelkeznek, de a rendelésekkel kapcsolatos részletek nélkül:
Ha kihagyja a DISTINCTROW függvényt, ez a lekérdezés több sort hoz létre minden olyan vállalathoz, amely több megrendelést is kezel. A DISTINCTROW csak akkor van hatással, ha a lekérdezésben használt táblák némelyikéből választ mezőket, de nem az összeset. A DISTINCTROW függvény figyelmen kívül lesz hagyva, ha a lekérdezés csak egy táblát tartalmaz, vagy ha az összes tábla mezőit kimenetként adja meg. |
TOP n [PERCENT] |
Bizonyos számú rekordot ad vissza, amelyek egy ORDER BY záradék által meghatározott tartomány tetején vagy alján esnek. Tegyük fel, hogy az 1994-ből származó első 25 tanuló nevét szeretné megkapni:
Ha nem adja meg az ORDER BY záradékot, a lekérdezés egy tetszőleges 25 rekordot ad vissza a Students táblából, amelyek megfelelnek a WHERE záradéknak. A TOP predikátum nem az egyenlő értékek közül választ. Az előző példában, ha a huszonötödik és a huszonhatodik legmagasabb osztályzatú pont átlaga megegyezik, a lekérdezés 26 rekordot ad vissza. A PERCENT fenntartott szóval a rekordok bizonyos százalékát is visszaadhatja, amelyek az ORDER BY záradékban megadott tartomány tetejére vagy aljára esnek. Tegyük fel, hogy a 25 legjobb tanuló helyett az osztály alsó 10 százalékát szeretné megkapni:
Az ASC-predikátum az alsó értékek visszaadását adja meg. A TOP értéket követő értéknek aláíratlan egész számnak kell lennie. A TOP nincs hatással arra, hogy a lekérdezés frissíthető-e. |
tábla |
Annak a táblának a neve, amelyből a rekordokat lekérdezi. |