Bevezetés az Access SQL nyelv használatába

Egy adatbázis adatait Structured Query Language, azaz SQL nyelv segítségével kérheti le. Az SQL egy olyan programnyelv, ami nagyon hasonlít az adatbázis-kezelő programok által megértett angol nyelvhez. Az SQL ismerete elengedhetetlen, hiszen ez az a nyelv, amelyet a Microsoft Access adatbázis-kezelő rendszer lekérdezései használnak. Az SQL nyelv segítségével sikeresebb lekérdezések hozhatók létre, emellett egyszerűbben ki lehet javítani azokat, amelyek nem a kívánt eredményeket adják.

Megjegyzés : A webes lekérdezések SQL-kódja nem szerkeszthető.

Tartalom

Az SQL nyelv bemutatása

Az alapvető SQL-záradékok: SELECT, FROM és WHERE

Az eredmények rendezése: ORDER BY

Összesített adatok használata: GROUP BY és HAVING

A lekérdezések eredményeinek összefűzése: UNION

További tudnivalók a SELECT záradékról

További tudnivalók a FROM záradékról

További tudnivalók a WHERE záradékról

Az SQL nyelv bemutatása

Az SQL egy programnyelv, amellyel műveleteket végezhet tényhalmazokkal és a közöttük fennálló kapcsolatokkal. A relációsadatbázis-kezelő programok, például az Access, az adatok kezelésére SQL nyelvet használnak. Más programnyelvekhez hasonlóan az SQL is nemzetközi szabvány, amelyet az ISO és az ANSI szabványozó testület is elismer.

Az SQL segítségével adathalmazokat írhat le, amelyekkel kérdéseket válaszolhat meg. Az SQL nyelv alkalmazásakor helyes szintaxist kell használni. A szintaxis az a szabálykészlet, amely biztosítja a nyelv elemeinek helyes összetételét. Az SQL szabályai az angol nyelv szabályain alapulnak, és a Visual Basic for Applications (VBA) nyelv számos szintaktikai elemét is tartalmazzák.

Az alábbi például egy egyszerű SQL-utasítás, amely a partnerek közül listába rendezi azokat, akiknek Mary a keresztneve:

SELECT Last_Name
FROM Contacts
WHERE First_Name = 'Mary';

Megjegyzés : Az SQL nemcsak adatok kezelésére használható, hanem adatbázis-objektumok, például táblák létrehozására és táblatervek módosítására is. Az SQL nyelvnek azt a részét, amelyet adatbázis-objektumok létrehozására és módosítására használnak, adatdefiníciós nyelvnek (DDL) nevezik. Ebben a témakörben nem lesz szó a DDL nyelvről. További információ a Táblák vagy indexek létrehozása, illetve módosítása adatdefiníciós lekérdezéssel című témakörben olvasható.

SELECT utasítások

Ha egy adatkészletet szeretne leírni az SQL nyelv segítségével, ehhez SELECT utasítást kell írnia. Egy SELECT utasítás az adatbázisból kinyerni kívánt adathalmaz teljes leírását tartalmazza. Ez a következőket foglalja magában:

  • Mely táblák tartalmazzák az adatokat

  • Hogyan kapcsolódnak egymáshoz a különböző forrásokból származó adatok

  • Milyen mezők vagy számítások eredményeképpen jönnek létre az adatok

  • Feltételek, melyek alapján az adatok bekerülnek az eredmények közé.

  • Szükséges-e az eredményeket rendezni, és ha igen, hogyan

SQL-záradékok

A mondatokat alkotó mellékmondatokhoz hasonlóan az SQL-utasításokban is vannak záradékok. Minden egyes záradék egy bizonyos funkciót hajt végre az SQL-utasítás számára. Bizonyos záradékokat kötelező megadni a SELECT utasításban. Az alábbi táblázat a leggyakoribb SQL-záradékokat tartalmazza.

SQL-záradék neve

Rendeltetés

Kötelező

SELECT

A vizsgált adatokat tartalmazó mezőket sorolja fel.

Igen

FROM

A SELECT záradékban felsorolt mezőket tartalmazó táblákat sorolja fel.

Igen

WHERE

Meghatározza azokat a mezőfeltételeket, amelyek alapján az egyes rekordok bekerülnek az eredmények közé.

Nem

ORDER BY

Megadja az eredmények rendezésének módját.

Nem

GROUP BY

Az összegző függvényeket tartalmazó SQL-utasításokban felsorolja azokat a mezőket, amelyek a SELECT záradékban nem szerepeltek.

Csak ha létezik ilyen mező

HAVING

Összegző függvényeket tartalmazó SQL-utasításokban megadja a SELECT utasításban összegzett mezőkre vonatkozó feltételeket.

Nem

SQL-kifejezések

Minden SQL-záradék kifejezésekből áll – a mondatrészekhez hasonló módon. Az alábbi táblázat az SQL-kifejezések típusait ismerteti.

SQL-kifejezés

Megfelelő szófaj a beszédben

Definíció

Példa

identifier

főnév

Az adatbázis-objektum azonosítására szolgáló név, például egy mező neve.

Vásárlók.[Telefonszám]

operator

ige vagy határozószó

Műveletet jelző vagy azt módosító kulcsszó.

AS

constant

főnév

Nem változó érték, például egy szám, vagy a NULL.

42

expression

melléknév

Azonosítók, operátorok, állandók és függvények kombinációja, amellyel értéket ad egy számnak.

>= Termékek.[Egységár]

Vissza a lap tetejére

Az alapvető SQL-záradékok: SELECT, FROM és WHERE

Egy SQL-utasítás az alábbi általános formában írható fel:

SELECT field_1
FROM table_1
WHERE criterion_1
;

Megjegyzések: 

  • Az Access nem veszi figyelembe az SQL-utasításban elhelyezett sortöréseket. Érdemes azonban minden záradékot új sorban kezdeni az utasítások áttekinthetősége érdekében.

  • Minden SELECT utasítás végén pontosvessző (;) áll. A pontosvesszőt elhelyezheti az utolsó záradék végén vagy új sorban az SQL-utasítás végén.

Egy példa az Access programból

Az alábbi ábra bemutatja, hogy egy egyszerű kiválasztásos lekérdezés hogyan jelenik meg az Access programban:

SQL-objektumlap SELECT utasítással

1. SELECT záradék

2. FROM záradék

3. WHERE záradék

Ez az SQL-utasítás a következőt jelenti: „Válassza ki azokat adatokat, amelyek a Partnerek táblában az E-mail cím és a Cég nevű mezőben vannak, speciálisan azokat a rekordokat, amelyekben a Város mező értéke Seattle.”

Tekintse át a példát, és az egyes záradékokon keresztül figyelje meg, hogyan használható az SQL szintaxisa.

A SELECT záradék

SELECT [E-mail Address], Company

Ez a SELECT záradék. Egy műveletből áll (SELECT), melyet két azonosító ([E-mail cím] és Cég) követ.

Ha egy azonosítóban szóközök vagy más speciális karakterek szerepelnek (például az E-mail cím azonosítóban), szögletes zárójelbe kell tenni.

A SELECT záradékban nem kell feltétlenül megadni, hogy a mezők melyik táblában vannak, és nem lehet meghatározni, hogy az adatokat milyen feltételek szerint választja ki.

A SELECT záradék mindig a FROM záradék előtt áll a SELECT utasításban.

A FROM záradék

FROM Contacts

Ez egy FROM záradék. Egy műveletből áll (FROM), melyet egy azonosító (Partnerek) követ.

A FROM záradék nem sorolja fel a kiválasztandó mezőket.

A WHERE záradék

WHERE City="Seattle"

Ez egy WHERE záradék. Egy műveletből áll (WHERE), melyet egy kifejezés követ (City="Seattle").

Megjegyzés : A SELECT és a FROM záradékoktól eltérően a WHERE záradék a SELECT utasításnak nem kötelező része.

Az SQL által felkínált műveletek legnagyobb része elvégezhető a SELECT, FROM és WHERE záradék alkalmazásával. E záradékok használatáról további információt a cikk végén, az alábbi szakaszokban talál:

További tudnivalók a SELECT záradékról

További tudnivalók a FROM záradékról

További tudnivalók a WHERE záradékról

Az eredmények rendezése: ORDER BY

A Microsoft Office Excel programhoz hasonlóan az Access is lehetővé teszi, hogy a lekérdezések eredményeit egy adatlapon rendezze. A lekérdezésben azt is megadhatja, hogy a lekérdezés futása közben hogyan kívánja rendezni az adatokat. Ehhez az ORDER BY záradékot használhatja. Az ORDER BY záradék az utolsó elem az SQL-utasításokban.

Az ORDER BY záradék tartalmazza a rendezés alapjául szolgáló mezők listáját, mégpedig ugyanabban a sorrendben, amelyben a rendezési műveleteket alkalmazni szeretné.

Tegyük fel például, hogy az eredményeket először a Cég mező értékei szerint csökkenő sorrendbe szeretné rendezni, majd – ha ugyanazon Cég értékeken belül több érték is található – az E-mail cím mezőben szereplő értékek szerint növekvő sorrendbe. Ebben az esetben az ORDER BY záradék a következőképpen néz ki:

ORDER BY Company DESC, [E-mail Address]

Megjegyzés : Alapértelmezés szerint az Access az értékeket növekvő sorrendbe rendezi (A–Z, kisebbtől a nagyobb felé). Ha inkább csökkenő sorrendbe rendezné az elemeket, használja a DESC kulcsszót.

Az ORDER BY záradékról további információt Az ORDER BY záradék című témakörben talál.

Vissza a lap tetejére

Összesített adatok használata: GROUP BY és HAVING

Előfordulhat, hogy összesített adatokat szeretne alkalmazni: ilyen például a havi teljes forgalom vagy a készlet legdrágább árucikke. Ehhez a SELECT záradékban egy összesítő függvény kell alkalmazni a megfelelő mezőn. Ha például azt szeretné, hogy a lekérdezés megmutassa az egyes cégekhez felsorolt e-mail címek számát, a SELECT záradék a következőképpen néz ki:

SELECT COUNT([E-mail Address]), Company

Az, hogy milyen összesítő függvényeket alkalmazhat, attól függ, hogy a felhasználandó mezőben vagy kifejezésben milyen adattípusok szerepelnek. A rendelkezésre álló összesítő függvényekkel kapcsolatban további információt Az SQL összesítő függvényei című cikkben talál.

Az összesítő függvényekből kihagyott mezők megadása: a GROUP BY záradék

Ha összesítő függvényeket alkalmaz, általában létre kell hoznia a GROUP BY záradékot is. A GROUP BY felsorolja mindazokat a mezőket, amelyekre nem alkalmazta az összesítő függvényt. Ha az összesítő függvényt az adott lekérdezésben szereplő összes mezőre alkalmazza, nincs szükség a GROUP BY záradékra.

A GROUP BY záradék közvetlenül a WHERE záradékot követi, vagy ha ilyen nincs, akkor a FROM záradékot. A GROUP BY záradék annak megfelelően sorolja fel a mezőket, ahogyan a SELECT záradékban azt megadta.

Az előző példát folytatva, ha a SELECT záradékban összesítő függvényt alkalmaz az [E-mail cím] mezőre, de a Cég mezőre nem, a GROUP BY záradék a következőképpen alakul:

GROUP BY Company

A GROUP BY záradékkal kapcsolatban további információt A GROUP BY záradék című témakörben talál.

Az összegző értékek korlátozása csoportos feltételek használatával: a HAVING záradék

Ha az eredményeket bizonyos feltételek szerint szeretné megjeleníteni, de az adott mezőt, amelyre a feltételek vonatkoznak, egy összesítő függvényben használja, a WHERE záradék nem használható. Ehelyett a HAVING záradékot kell alkalmazni. A HAVING záradék funkciója hasonlít a WHERE záradékhoz, de ez összesített adatok esetében használható.

Tegyük fel például, hogy az AVG függvényt alkalmazza (átlagértéket számít) a SELECT záradékban megadott első mezőn:

SELECT COUNT([E-mail Address]), Company

Ha a lekérdezés eredményeit a COUNT függvény értékeinek alapján szeretné korlátozni, a WHERE záradékban nem adhat meg feltételt az adott mezőre vonatkozóan. A feltételeket a HAVING záradékban kell megadni. Ha például azt szeretné, hogy a lekérdezés csak olyan sorokat adjon vissza, amelyeknél egy céghez több e-mail cím is társítható, a HAVING záradék a következőképpen néz ki:

HAVING COUNT([E-mail Address])>1

Megjegyzés : Egy lekérdezésben egyaránt szerepelhet WHERE záradék és HAVING záradék – az összesítő függvényekben nem használt mezőkre vonatkozó feltételek a WHERE záradékban vannak, a többi mezőre vonatkozó feltételek pedig a HAVING záradékban szerepelnek.

A HAVING záradékról további információt A HAVING záradék című témakörben talál.

Vissza a lap tetejére

A lekérdezések eredményeinek összefűzése: UNION

Ha egyszerre szeretné áttekinteni az összes adatot, amelyet több hasonló, választó lekérdezés adott vissza, akkor használja a UNION műveletet.

A UNION művelet több SELECT utasítást egyesít. Az egyesítendő SELECT utasításoknak ugyanannyi kimeneti mezővel, ugyanolyan sorrenddel és ugyanolyan vagy kompatibilis adattípussal kell rendelkezniük. A lekérdezés futtatásakor az egyes kapcsolódó mezőhalmazok adatai egyetlen kimeneti mezőbe kerülnek, ezért a lekérdezés eredménye mindig ugyanannyi mezőt tartalmaz, mint az egyes SELECT utasításoké.

Megjegyzés : Egyesítő lekérdezések esetében a Szám és a Szöveg adattípus kompatibilis egymással.

A UNION művelet alkalmazásakor azt is megadhatja, hogy a lekérdezési eredmények között megjelenjenek-e az ismétlődő sorok (ha a lekérdezés ilyen eredményt adott). Ehhez használja az ALL kulcsszót.

Az egyesítő lekérdezések SQL-alapszintaxisa a következő (két SELECT utasítás egyesítése):

SELECT field_1
FROM table_1
UNION [ALL]
SELECT field_a
FROM table_a
;

Tegyük fel, hogy van egy Termékek és egy Szolgáltatások nevű táblája. Mindkét tábla rendelkezik olyan mezőkkel, amelyek a termék vagy szolgáltatás nevét, árát, jótállását, garanciális lehetőségeit, illetve a termék vagy szolgáltatás kizárólagos értékesítési állapotát tartalmazzák. Bár a Termékek tábla jótállási adatokat, míg a Szolgáltatások tábla garanciális adatokat tartalmaz, a lényeg ugyanaz (rendelkezik-e az adott termék vagy szolgáltatás minőségi szavatossággal). A két tábla négy mezőjének egyesítéséhez használjon az alábbihoz hasonló egyesítő lekérdezéseket:

SELECT name, price, warranty_available, exclusive_offer
FROM Products
UNION ALL
SELECT name, price, guarantee_available, exclusive_offer
FROM Services
;

A SELECT utasítások egyesítéséről és a UNION művelet használatáról további tudnivalókat a Több választó lekérdezés eredményének egyesítése egyesítő lekérdezéssel című cikkben talál.

Vissza a lap tetejére

További tudnivalók a SELECT záradékról

A SELECT utasításokban a SELECT záradék a felhasználandó adatokat tartalmazó mezőket sorolja fel.

Az azonosítókat tegye szögletes zárójelbe.

A SELECT záradékban a mezőneveket szögletes zárójelek közé foglalhatja. Ha a mezők neveiben nincsenek szóközök vagy más különleges karakterek (például írásjelek), akkor a szögletes zárójelet el is hagyhatja. Ha a mezőnevekben szóközök vagy különleges karakterek vannak, a szögletes zárójelek használata kötelező.

Tipp : A szóközt tartalmazó neveket egyszerűbb elolvasni, és időt is 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ítja, 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 a csillagot alkalmazza, é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 a Rendelések tábla összes mezőjét ki kell választania, a Partnerek 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 egymástól különböző é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ők vagy kifejezések esetén: az AS kulcsszó

Megváltoztathatja egy adott adatlap mezőjéhez megjelenített címkét. Ehhez használja az AS kulcsszót és adjon meg egy helyettesítő nevet (mezőalias) a SELECT záradékban. A mezőalias olyan név, amelyet a lekérdezésben szereplő mezőkhöz rendelhet annak érdekében, hogy az eredményeket könnyebben értelmezhesse. Ha például egy txtÜgyfélTelszám nevű mezőből szeretné kiválasztani az adatokat, és a mező az ügyfelek telefonszámait tartalmazza, az eredmények áttekinthetőbbek lesznek, ha a SELECT utasításban mezőaliast alkalmaz 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 SzületésiDátum mezője alapján. A SELECT záradék 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 [SzületésiDátum] (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.

Vissza a lap tetejére

További tudnivalók a FROM záradékról

A SELECT utasításban a FROM záradék határozza meg, hogy a SELECT záradékban felhasznált adatok melyik táblákból vagy lekérdezésekből származnak.

Tegyük fel, hogy egy adott vevő telefonszámát szeretné megtudni. Feltéve, hogy az ezt az adatot tároló mező a tblVevő nevű táblában szerepel, a FROM záradék a következőképpen alakul:

FROM tblCustomer

Az azonosítókat tegye szögletes zárójelbe.

A neveket szögletes zárójelek közé foglalhatja. Ha a mezők neveiben nincsenek szóközök vagy más különleges karakterek (például írásjelek), akkor a szögletes zárójelet el is hagyhatja. Ha a mezőnevekben szóközök vagy különleges karakterek vannak, a szögletes zárójelek használata kötelező.

Tipp :  A szóközt tartalmazó neveket egyszerűbb elolvasni, és időt is 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.

Helyettesítő nevek használata adatforrásokhoz

A SELECT utasításban másik nevet is adhat az adatforrásnak, ha a FROM záradékban táblaaliast használ. A táblaalias olyan név, amelyet a lekérdezésben szereplő adatforráshoz rendelhet, amikor az adatforrás egy kifejezés. Az alias az SQL-utasítások beírását, illetve olvasását is egyszerűsíti. Különösen akkor hasznos, ha az adatforrás neve hosszú vagy bonyolult, illetve akkor, ha több, különböző táblából származó mezőnek is ugyanaz a neve.

Ha például két mezőből kell összegyűjteni az adatokat, és mindkét mező neve Azonosító, de az egyik a tblVevő nevű táblából, a másik a tblRendelés nevű táblából származik, a SELECT záradék a következőképpen néz ki:

SELECT [tblCustomer].[ID], [tblOrder].[ID]

Ha táblaaliast használ a FROM záradékban, egyszerűbben írhatja le a lekérdezést. Táblaaliasokkal a FROM záradék a következőképpen néz ki:

FROM [tblCustomer] AS [C], [tblOrder] AS [O]

Ezután a táblaaliasokat a SELECT záradékban is használhatja az alábbiak szerint:

SELECT [C].[ID], [O].[ID]

Megjegyzés : Ha táblaaliast alkalmazott, az SQL-utasításban az aliasnévvel és az adatforrás teljes nevével is hivatkozhat az adatforrásra.

Kapcsolódó adatok illesztése

Ha két adatforrásból származó rekordpárokat kell egyesítenie egy lekérdezésben, ehhez illesztést kell végrehajtania. Az illesztés olyan SQL-művelet, amely leírja, hogy két adatforrás hogyan kapcsolódik össze, és hogy az egyik forrásból származó adatot akkor is visszaadja-e a keresés, ha a másik adatforrásban nincs kapcsolódó adat.

Két adatforrásból származó információk egyesítését úgy végezheti el, ha illesztést hajt végre az adatforrások közös mezőjén. Ha a közös mezőben tárolt értékek megegyeznek, a rekordokból származó adatok egyesítve jelennek meg az eredményben.

Az adatok egyesítésén kívül az illesztés alkalmas arra is, hogy meghatározza, kell-e adatokat venni bármelyik táblából, ha a kapcsolódó táblában nincs megfelelő rekord.

Tegyük fel például, hogy egy lekérdezésben két táblából származó adatokat kíván használni, és a két tábla neve: tblVevő és tblRendelés. Mindkét táblában van egy mező, a Vevőkód mező, amely egy vevőt azonosít. A tblVevő tábla minden egyes eleme kapcsolódik a tblRendelés tábla egy vagy több eleméhez, és a kapcsolódó értékeket a Vevőkód mező értékeivel lehet meghatározni.

Ha a táblákat illeszteni szeretné úgy, hogy a lekérdezés egyesítse a táblákból származó rekordokat, kizárva az egyik táblából származó rekordokat, ha a másik táblában nincs kapcsolódó rekord, a FROM záradék a következőképpen néz ki (az áttekinthetőség érdekében sortörést alkalmazva):

FROM [tblCustomer] INNER JOIN [tblOrder]
ON [tblCustomer].[CustomerID]=[tblOrder].[CustomerID]

A Microsoft Office Access alkalmazásban az illesztéseket a SELECT utasítás FROM záradékában határozzák meg. Az illesztéseknek kétféle típusa létezik: belső és külső illesztés. Az alábbi szakaszok ismertetik az illesztések kétféle típusát.

Belső illesztések

A belső illesztés a legáltalánosabb típusa az illesztéseknek. Amikor egy belső illesztést tartalmazó lekérdezést futtat, a lekérdezés csak azokat a mezőket veszi figyelembe, ahol mindkét illesztett táblában ugyanaz az érték szerepel a mezőkben.

A belső illesztés szintaxisa az alábbiak szerint alakul (az áttekinthetőség érdekében sortörést alkalmazva):

FROM table1 INNER JOIN table2
ON table1.field1 compopr table2.field2

Az alábbi táblázat az INNER JOIN művelet részeit ismerteti.

Rész

Leírás

tábla1, tábla2

Azon két tábla neve, amelyek rekordjait egyesíti.

mező1, mező2

Az egyesítendő mezők neve. Ha a mezők nem numerikusak, akkor adattípus azonosnak kell lenniük, és ugyanolyan jellegű adatokat kell tartalmazniuk. A nevük lehet különböző.

összehasonlító operátor

Bármely relációs összehasonlító operátor: =, <, >, <=, >= vagy <>.

Külső illesztések

A külső illesztések a belső illesztésekhez hasonlóan azt határozzák meg, hogy egy lekérdezés hogyan egyesíti a két forrásból származó információt. A külső illesztések abban különböznek, hogy azt is megadják, hogy a lekérdezés figyelembe vegye-e az adatokat, ha nincsenek azonos értékek. A külső illesztések irányítottak: megadják, hogy a lekérdezés az illesztésben megadott első adatforrás összes rekordját tartalmazza (bal oldali illesztés), vagy az illesztésben megadott második adatforrás összes rekordját (jobb oldali illesztés).

A külső illesztések szintaxisa az alábbi:

FROM tábla1 [ LEFT | RIGHT ] JOIN tábla2
ON tábla1.mező1összehasonlító_operátor tábla2.mező2

Az alábbi táblázat a LEFT JOIN és a RIGHT JOIN művelet részeit ismerteti.

Rész

Leírás

tábla1, tábla2

Azon két tábla neve, amelyek rekordjait egyesíti.

mező1, mező2

Az egyesítendő mezők neve. A mezők adattípus egyeznie kell, a mezőknek ugyanolyan jellegű adatokat kell tartalmazniuk, de a nevük lehet különböző.

összehasonlító operátor

Bármely relációs összehasonlító operátor: "=", "<", ">", "<=", ">=" vagy "<>".

Az illesztésekkel kapcsolatban további tájékoztatás olvasható a Táblák és lekérdezések illesztése című cikkben.

Vissza a lap tetejére

További tudnivalók a WHERE záradékról

Ha adatok segítségével szeretné korlátozni a lekérdezésben visszaadott rekordok számát, ehhez lekérdezési feltételeket kell megadnia a SELECT utasítás WHERE záradékában. A lekérdezési feltételek hasonlítanak a képletekre – olyan karaktersorozatok, amelyek mezőhivatkozásokból, operátorokból és állandókból állnak. A lekérdezési feltételek egyfajta kifejezésnek tekinthetők.

Az alábbi táblázat néhány példát mutat a feltételekre, és ismerteti azok működését.

Feltételek

Leírás

>25 és <50

Ez a feltétel a Szám típusú mezőkre (például az Ár vagy a Raktárkészlet mezőre) alkalmazható. Azoknak a rekordoknak az esetében teljesül, amelyekben a mező értéke 25-nél nagyobb, de 50-nél kisebb.

DateDiff ("yyyy", [SzületésiDátum], Date()) > 30

Ez a feltétel egy Dátum/idő típusú (például SzületésiDátum) mezőre alkalmazható. Csak azok a rekordok kerülnek bele a lekérdezés eredményébe, amelyekben a születési dátum és a mai dátum közötti különbség több, mint 30 év.

Is Null

Ez a feltétel bármilyen típusú mezőre alkalmazható, és azokat a rekordokat adja vissza, amelyekben a mező értéke Null.

Mint az előző táblázat mutatja, a feltételek nagyon különbözőek lehetnek a vizsgált mező adattípusától és az egyéni szükségletektől függően. Egyes feltételek egyszerűek, alapvető operátorokat és állandókat tartalmaznak. Más feltételek összetettek, függvényekből és speciális operátorokból állnak, és mezőhivatkozásokat tartalmaznak.

Fontos : Ha a mezőt összesítő függvényben használja, a feltételek meghatározására nem használhatja a WHERE záradékot. Helyette a HAVING záradékot kell alkalmazni az összesített mezőkön. További információt az Összesített adatok használata: GROUP BY és HAVING című szakaszban talál.

A WHERE záradék szintaxisa

A WHERE záradék szintaxisa az alábbi:

WHERE field = criterion

Tegyük fel, hogy egy vevő telefonszámát szeretné megtudni, de csak arra emlékszik, hogy a vevő vezetékneve Bedecs. Ahelyett, hogy az adatbázisban szereplő összes telefonszámot végignézné, a WHERE záradékban korlátozhatja az eredmények számát, és így könnyebben megtalálhatja a szükséges telefonszámot. Amennyiben a vezetékneveket a Vezetéknév mező tartalmazza, a WHERE záradék így néz ki:

WHERE [LastName]='Bagel'

Megjegyzés : A WHERE záradékban a feltételeket nem szükséges az értékek egyenlőségére alapozni. Használhatja bármelyik összehasonlító operátort, így a nagyobb (>) vagy kisebb (<) operátort. Például: WHERE [Ár]>100.

A WHERE záradék használata adatforrások egyesítésében

Előfordulhat, hogy az egyesítendő adatforrások mezőinek adatai megegyeznek, de különböző típusúak. Az egyik tábla mezője például Szám típusú, és ezt a mezőt össze kell vetni egy másik tábla Szöveg típusú mezőjével.

Különböző adattípusú mezők között nem lehet illesztést létrehozni. A különböző adattípusú mezők értékein alapuló adatforrások adatainak egyesítéséhez olyan WHERE záradékot kell létrehozni, amelyben az egyik mező a másik feltétele. Ezt a LIKE kulcsszóval teheti meg.

Tegyük fel, hogy a tábla1 és a tábla2 táblából származó adatokat szeretné használni, de csak abban az esetben, ha a mező1 (a tábla1 egyik szövegmezője) ugyanazt az adatot tartalmazza, mint a mező2 (a tábla2 egyik számmezője). Ebben az esetben a WHERE záradék a következőképpen néz ki:

WHERE field1 LIKE field2

A WHERE záradékban használatos feltételek létrehozásáról további tudnivalókat a Példák lekérdezésfeltételekre című témakörben talál.

Vissza a lap tetejére

Ismeretek bővítése
Oktatóanyagok megismerése
Új szolgáltatások listájának lekérése
Részvétel az Office Insider programban

Hasznos volt az információ?

Köszönjük a visszajelzését!

Köszönjük visszajelzését. Jobbnak látjuk, ha az Office egyik támogatási szakemberéhez irányítjuk.

×