Ez a témakör az Access SQL használatával foglalkozó témakörsorozatunk része. A jelen témakör ismerteti, hogy hogyan írhat SELECT záradékot, és példákkal szemlélteti a záradékok írásakor használható különféle technikákat.
Az Access SQL áttekintését a következő témakörben találhatja meg: Access SQL: alapfogalmak, szókészlet és szintaxis.
Tartalom
Mezők kijelölése: a SELECT záradék
A SELECT utasítás általában a SELECT záradékkal kezdődik. A SELECT záradékkal meg tudja adni azoknak a mezőknek a nevét, amelyek a lekérdezésben használni kívánt adatokat tartalmazzák. Használhat kifejezéseket is a mezőnevek helyett vagy mellett. Akár egy másik SELECT utasítást is használhat mezőként – ezt allekérdezésnek nevezzük.
Tegyük fel, hogy szeretné megtudni az ügyfelei telefonszámát. Ha az ügyfelek telefonszámát tartalmazó mező neve txtCustPhone, akkor a SELECT záradék a következő:
SELECT [txtCustomerPhone]
A neveket szögletes zárójelekkel határolhatja. Ha a név nem tartalmaz egyetlen szóközt vagy speciális karaktert sem (például írásjeleket), akkor a szögletes zárójel használata nem kötelező. Ha azonban a név tartalmaz szóközt vagy speciális karaktert, muszáj szögletes zárójelek közé zárnia.
Tipp: A szóközt tartalmazó neveket egyszerűbb elolvasni, és időt spórolhat meg velük az űrlapok és jelentések tervezésekor, de előfordulhat, hogy emiatt többet kell majd gépelnie az SQL-utasítások megírásakor. Ne feledkezzen meg erről, amikor elnevezi az adatbázis objektumait.
Ha egy SQL-utasításban két vagy több mezőnek ugyanaz a neve, az egyes mezőkhöz tartozó adatforrások nevét is meg kell adnia a SELECT záradékban. Ugyanazt a forrásnevet kell megadnia, mint a FROM záradékban.
Az összes mező kijelölése
Ha az adatforrásból származó összes mezőre szüksége van, felsorolhatja az összes mezőt egyenként a SELECT záradékban, vagy használhatja a csillag helyettesítő karaktert (*). A csillagot használva az Access meghatározza, hogy a lekérdezés futtatása közben az adatforrások milyen mezőket tartalmaznak, és minden mezőt visszaad a lekérdezésben. Így biztosíthatja, hogy a lekérdezés naprakész maradjon akkor is, ha az adatforráshoz időközben új mezőket adtak.
Egy vagy több adatforrás esetében is használhatja a csillag karaktert az SQL-utasításokban. Ha csillagot használ, és több adatforrása van, az adatforrás nevét is meg kell adnia a csillag mellett, így az Access meg tudja állapítani, hogy melyik forrás az, amelyből az összes mezőt vissza kell adnia.
Tegyük fel, hogy az Orders tábla összes mezőjét ki kell választania, a Contacts táblából viszont csak az e-mail-címeket. Ekkor a SELECT záradék körülbelül így néz ki:
SELECT Orders.*, Contacts.[E-mail Address]
Megjegyzés: Figyeljen a módosításokra, ha a csillag karaktert használja. Ha az adatforrás a későbbiekben új mezőkkel bővül, és erre nem számít, előfordulhat, hogy a lekérdezés nem a kívánt eredményt adja.
Egyedi értékek kijelölése
Ha tudja, hogy az utasítás redundáns adatokat jelöl ki, de csak az egyedi értékeket szeretné látni, a SELECT záradékban használja a DISTINCT kulcsszót. Tegyük fel, hogy vevői többféle különböző érdekeltségekhez tartoznak, és vannak közöttük, amelyeknek ugyanaz a telefonszáma. Ha minden telefonszámot biztosan csak egyszer kíván szerepeltetni a listán, a SELECT záradék a következőképpen alakul:
SELECT DISTINCT [txtCustomerPhone]
Helyettesítő nevek használata mezőkhöz vagy kifejezésekhez: az AS kulcsszó
Adatlap nézetben bármelyik mezőhöz megjelenítendő címkét módosíthatja az AS kulcsszóval és egy mezőaliassal a SELECT záradékban. A mezőalias olyan név, amelyet a lekérdezés egy mezőjéhez rendel, hogy az eredmények könnyebben olvashatók legyenek. Ha például egy txtCustPhone nevű mezőből szeretne adatokat kiválasztani, és a mező ügyfél telefonszámokat tartalmaz, akkor a SELECT utasításban egy mezőalias használatával javíthatja az eredmények olvashatóságát, az alábbiak szerint:
SELECT [txtCustPhone] AS [Customer Phone]
Megjegyzés: A mezőalias használata kötelező, ha a SELECT záradékban kifejezést használ.
Kiválasztás kifejezés alkalmazásával
Előfordulhat, hogy az adatokon alapuló számítások eredményére kíváncsi, vagy egy mező adatainak csak egy részét szeretné lekérdezni. Tegyük fel, hogy a vásárlók születési évét szeretné lekérdezni az adatbázis BirthDate mezője alapján. A SELECT záradék ekkor a következőképpen néz ki:
SELECT DatePart("yyyy",[BirthDate]) AS [Birth Year]
Ez a kifejezés a DatePart függvényből és két argumentumból áll – „yyyy” (állandó) és [BirthDate] (azonosító).
Bármilyen érvényes kifejezést használhat mezőként, ha a kifejezés egyetlen bemeneti értékre egyetlen kimeneti értéket ad.