Bevezetés a hozzáférési alkalmazás sql nyelvébe

Az adatok adatbázisból történő kibontásához az SQL nyelvet (Structured Query Language) használják. Az SQL olyan programozási nyelv, amely nagyon hasonlít az angol nyelvre, de adatbáziskezelő programokra van szánva. Az SQL nyelv ismerete azért fontos, mert a Microsoft Access minden lekérdezésénél használják. Az SQL-munka elveinek megértése segít a jobb lekérdezések létrehozásában és egyszerűsíti a helytelen eredmények visszaküldésére szolgáló lekérdezések korrigálását.

Megjegyzés: Nem módosíthatja az SQL parancsot webes kérelem esetén.

Ebben a cikkben

Mi az SQL?

Az SQL egy olyan programozási nyelv, amelynek célja a tényállások és a köztük lévő kapcsolatok együttes kezelése. Relációs adatbázis-kezelő programokban, például az Access-ban az SQL-t az adatok manipulálására használják. Mint sok programozási nyelv, az SQL olyan nemzetközi szabvány, amelyet az ISO és ANSI standardizálási bizottságok ismertek.

Az SQL nyelv olyan adatkészleteket ír le, amelyek segítenek a kérdések megválaszolásában. Az SQL használatakor a helyes szintaxist kell használnia. A szintaxis egy olyan szabálykészlet, amely lehetővé teszi a nyelvelemek helyes kombinálását. Az SQL szintaxisa az angol szintaxison alapul, és számos közös eleme van a Visual Basic for Applications (VBA) nyelv szintaxisának.

Például egy egyszerű SQL utasítás, amely a Mary névvel rendelkező névjegyek listáját visszakeresheti, így néz ki:

Megjegyzés: Az SQL nyelvet nemcsak az adatokon végzett műveletek végrehajtására használja, hanem az adatbázis objektumok szerkezetének, például táblázatok létrehozásának és módosításának is. Az adatbázis objektumok létrehozásához és módosításához használt SQL rész a DDL adatleíró nyelv. A DDL nyelv nem szerepel ebben a részben. További információ: Táblák és indexek létrehozása és módosítása az adatok meghatározásának lekérdezései segítségével.

SELECT utasítások

A SELECT utasítás az SQL nyelvben lévő adatkészletek leírására szolgál. A teljes adatbázis leírását tartalmazza, amelyet az adatbázisból kell letöltenie, beleértve a következőket:

táblázatok, amelyek tartalmaznak adatokat;

a különböző forrásokból származó adatok közötti kapcsolatok;

Az adatok kiválasztásának alapját képező mezők vagy számítások;

azok a kiválasztási feltételek, amelyeknek a lekérdezés eredményében szereplő adatoknak meg kell felelniük;

a válogatás szükségessége és módszere.

SQL utasítások

Az SQL utasítás több részből áll, úgynevezett mondatokból. Az SQL utasítás minden mondata saját célt szolgál. Néhány javaslat kötelező. Az alábbi táblázat a leggyakrabban használt SQL utasításokat mutatja.

Az SQL utasítás általános formátuma:

Minden SELECT utasítás pontosvesszővel (;) tűnik ki. A pontosvessző lehet az utolsó mondat végén vagy egy külön sorban az SQL utasítás végén.

Példa az Access szolgáltatásban

Az alábbi példa azt mutatja be, hogy az Access egy egyszerű kijelölési lekérdezéshez hasonlóan SQL utasításnak tűnhet.

Bevezetés a hozzáférési alkalmazás sql nyelvébe

1. SELECT klauzula

2. A FROM záradék

3. WHERE záradék

Vegyünk egy példát a javaslatokból, hogy megértsük, hogyan működik az SQL szintaxisa.

SELECT klauzula

A SELECT záradékban nem kell megadnia a mezőket tartalmazó táblázatokat, és nem tudja megadni azokat a kiválasztási feltételeket, amelyeknek az eredményekben szereplő adatoknak meg kell egyezniük.

A SELECT utasításban a SELECT klauzula mindig a FROM klauzulát megelőzi.

A záradéktól

Ez egy FROM-záradék. Tartalmaz egy nyilatkozatot (FROM), amelyet egy azonosító (Contacts) követ.

A FROM-záradék nem adja meg a minta mezőket.

WHERE záradék

Ez a WHERE záradék. Egy üzemeltetőt (WHERE) tartalmaz, amelyet egy kifejezés (City = "Rostov") követ.

Megjegyzés: A SELECT és FROM záradékoktól eltérően a WHERE klauzula a SELECT utasítás fakultatív eleme.

A SELECT, FROM és WHERE záradékok segítségével számos műveletet végezhet el. A javaslatok használatával kapcsolatos további információkért lásd a cikk végén található szakaszokat.

Rendezési eredmények: ORDER BY záradék

A Microsoft Office Excel alkalmazáshoz hasonlóan, az Access alkalmazásban a lekérdezés eredményeit táblázatban rendezheti. Az ORDER BY záradék használatával megadhatja, hogy az eredmények mikor rendeződnek a lekérdezés végrehajtásakor. Ha az ORDER BY záradékot használja, akkor az SQL utasítás végén kell lennie.

Az ORDER BY klauzula tartalmazza azoknak a mezőknek a listáját, amelyek sorrendjét szeretné rendezni, ugyanabban a sorrendben, amelyben a rendezést alkalmazzák.

Megjegyzés: Az Access alkalmazásban a rendezés növekvő sorrendben történik (A-tól Z-ig, a legalacsonyabbtól a legmagasabbig). Ha az értékeket csökkenő sorrendben rendezi, meg kell adnia a DESC kulcsszót.

További információ az ORDER BY-záradékról: ORDER BY-záradék.

Összefoglaló adatok feldolgozása: GROUP BY és HAVING záradékok

Az adott statisztikai függvény használatának lehetõsége attól függ, hogy milyen típusú adatok vannak a mezõben vagy az alkalmazott kifejezésben. A rendelkezésre álló statisztikai függvényekkel kapcsolatos további információkért lásd az SQL statisztikai függvényeket.

A statisztikai függvényben nem használt mezők megadása: GROUP BY klauzula

Statisztikai funkciók használatakor általában szükség van egy GROUP BY klauzula létrehozására. A GROUP BY klauzula meghatároz minden olyan mezőt, amelyre a statisztikai függvényt nem alkalmazzák. Ha a statisztikai függvényeket a lekérdezés összes mezőjére alkalmazza, akkor nem kell létrehoznia a GROUP BY-záradékot.

A GROUP BY záradéknak azonnal követnie kell a WHERE záradékot vagy a FROM záradékot, ha a WHERE záradék nincs jelen. A GROUP BY klauzulában a mezők a SELECT klauzulában megadott sorrendben vannak megadva.

CSOPORT Társaság

A GROUP BY klauzuláról további információkat a GROUP BY klauzula tartalmaz.

A statisztikai értékek korlátozása csoportosítási feltételek alkalmazásával: HAVING záradék

Ha az eredmények korlátozására vonatkozó feltételeket kívánja megadni, de a használni kívánt mezőt a statisztikai függvényben használják, akkor a WHERE záradék nem használható. Ehelyett használja a HAVING záradékot. A HAVING záradék ugyanaz, mint a WHERE, de statisztikai adatokhoz használják.

Tegyük fel például, hogy az AVG függvény (amely kiszámítja az átlagértéket) a SELECT klauzula első mezőjére kerül alkalmazásra:

Megjegyzés: A kérelem tartalmazhat egy ajánlatot, és a WHERE, miután, és felajánlja, ugyanabban az kiválasztási kritériumok területeken, amelyek nincsenek alkalmazzuk a statisztikai feladatokat a WHERE záradékot, és a feltételeket a mezőket, amelyek használják a statisztikai funkciók - a HAVING.

A HAVING záradékkal kapcsolatos további információkért lásd a HAVING záradékot.

A lekérdezések eredményeinek kombinálása: UNION operátor

Az UNION nyilatkozat lehetővé teszi, hogy két SELECT kijelentést egyesíts. Az egyesített SELECT utasításoknak ugyanolyan számmal és sorrendű kimeneti mezőkkel kell rendelkezniük, amelyek azonos vagy kompatibilis adattípusokkal rendelkeznek. Ha lekérdezést hajt végre, az egyes mezőkből származó adatok egy kimeneti mezőbe vannak kapcsolva, így a lekérdezés kimenete annyi mezőt tartalmaz, mint az egyes SELECT utasítások.

Megjegyzés: A csatlakozási lekérdezéseknél a szám- és szövegadat-típusok kompatibilisek.

Az UNION operátor használatával meghatározhatja, hogy a lekérdezés eredményei tartalmaznak-e duplikált sorokat, ha vannak ilyenek. Ehhez használja az ALL kulcsszót.

A két SELECT utasítás kombinációjára vonatkozó kérelem a következő alapvető szintaxissal rendelkezik:

Tegyük fel például, hogy két táblázat található: "Termékek" és "Szolgáltatások". Mindkét táblázat tartalmazza a termék vagy szolgáltatás nevét, az árat és a garancia adatait, valamint azt a mezőt, amelyben a javasolt termék vagy szolgáltatás kizárólagossága szerepel. Annak ellenére, hogy a "Termékek" és a "Szolgáltatások" táblázatok különböző típusú garanciákat nyújtanak, az alapinformáció ugyanaz (függetlenül attól, hogy az egyes termékekre vagy szolgáltatásokra minőségi garanciát nyújt). Két tábla négy mezőjének egyesítéséhez a következő csatlakozási lekérdezést használhatja:

További információ a SELECT záradékról

A SELECT utasításban a SELECT utasítás felsorolja a használni kívánt adatmezőket.

Az azonosítók zárójelben történő lezárása

A SELECT klauzulában szereplő mezőnév négyszögletes zárójelbe zárható. Ha a név nem tartalmaz szóközöket vagy speciális karaktereket (például írásjeleket), akkor a négyszögletes zárójelek nem használhatók. Ha a név szóközöket vagy különleges karaktereket tartalmaz, akkor négyszögletes zárójelek szükségesek.

Tipp: A szóközt tartalmazó nevek kényelmesebbek a felfogáshoz. Ez az elnevezési módszer időt és időt takaríthat meg formák és jelentések tervezésénél, de az SQL utasítások létrehozásakor több karaktert kell megadnia. Ezt a tényt figyelembe kell venni, amikor nevet ad az adatbázisban lévő objektumokhoz.

Ha az SQL utasítás több mezőt tartalmaz azonos névvel, a SELECT klauzulában a megfelelő adatforrás nevét kell hozzáadni az egyes mezők nevéhez. Mint az adatforrás neve, ugyanazt a nevet kell használnia, mint a FROM-záradék.

Az összes mező kiválasztása

Ahhoz, hogy az összes adatmezőt az adatforrásból a lekérdezésbe vegye fel, mindegyiket külön megadhatja a SELECT klauzulában, vagy használja a helyettesítő karaktert (*). Ha csillagot használ, a lekérdezés futtatásakor az Access meghatározza, hogy mely mezők tartalmazzák az adatforrást, és a lekérdezés összes mezőjét tartalmazza. Ezzel biztosítható, hogy a lekérdezés naprakész legyen, ha új mezőket adnak hozzá az adatforráshoz.

Megjegyzés: A csillag használatát gondosan ellenőrizni kell. Ha később olyan mezőket ad hozzá az adatforráshoz, amelyet nem tervezett használni, előfordulhat, hogy a lekérdezés eredményei nem a vártnak megfelelőek.

Egyéni értékek kiválasztása

SELECT DISTINCT [txtCustomerPhone]

Mezők vagy kifejezések álnevek használata: az AS kulcsszó

SELECT [txtCustPhone] AS [Ügyfél telefon]

Megjegyzés: Használnia kell egy mező aliast, ha a kifejezést a SELECT klauzulában használják.

Kiválasztott kifejezés használata

Előfordulhat, hogy a számítások eredményeit a kiválasztott adatok alapján kell megjeleníteni, vagy csak a mező adatok egy részét kell kivenni. Tegyük fel például, hogy minden született születési évre vissza kell térni a "Születési nap" mező adatainak felhasználásával. A SELECT klauzula így fog kinézni:

SELECT DatePart ("yyyy", [születési dátum]) AS [születési év]

Ez a kifejezés tartalmazza a DatePart funkciót és két argumentumot. "yyyy" (állandó) és [születési nap] (azonosító).

Minden érvényes kifejezést mezőként használhat, ha egyetlen értéket vesz fel, akkor is egyetlen értéket ad vissza.

További információ a FROM-záradékról

A SELECT utasítás FROM záradéka határozza meg azokat a táblázatokat vagy lekérdezéseket, amelyek tartalmazzák a SELECT záradék által használt adatokat.

Az azonosítók zárójelben történő lezárása

A név négyszögletes zárójelbe zárható. Ha a név nem tartalmaz szóközöket vagy speciális karaktereket (például írásjeleket), akkor a négyszögletes zárójelek nem használhatók. Ha a név szóközöket vagy különleges karaktereket tartalmaz, akkor négyszögletes zárójelek szükségesek.

Tipp: A szóközt tartalmazó nevek kényelmesebbek a felfogáshoz. Ez az elnevezési módszer időt és időt takaríthat meg formák és jelentések tervezésénél, de az SQL utasítások létrehozásakor több karaktert kell megadnia. Ezt a tényt figyelembe kell venni, amikor nevet ad az adatbázisban lévő objektumokhoz.

Az adatforrás álnevek használata

Az adatforráshoz való hozzáféréshez a SELECT utasításban az alias használatával megadhatja a FROM klauzulában. A táblázat alias a lekérdezés adatforráshoz rendelt név, amikor a kifejezést használja adatforrásként, vagy egyszerűsíti az SQL utasítás beírását és olvasását. Ez akkor hasznos, ha az adatforrás neve túl hosszú vagy nehéz beírni, különösen akkor, ha több mező azonos nevű a különböző táblázatokból.

Például, ha kell kiválasztania az adatokat két mező neve „ID”, amelyek közül az egyik tartalmazza a „tablKlient” tábla, és a többi - a „tablZakaz” táblázatban a SELECT mondat a következőképpen nézhet ki:

SELECT [tblCustomer]. [ID], [tblOrder]. [Azonosító]

A táblázatbeli álnevek használatával a FROM-záradékból egyszerűsítheti a lekérdezési bejegyzést. A táblázati álnevekből származó FROM-záradék így néz ki:

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

Ezek a táblázati álnevek a SELECT klauzulában a következők szerint használhatók:

Megjegyzés: Ha álneveket ad az adatforráshoz, az álnévre vagy a teljes névre hivatkozhat az SQL utasításra.

A kapcsolódó adatok összevonása

Ha két adatforrást tartalmazó rekordparamétereket kíván összeilleszteni a lekérdezési eredmények egyetlen rekordjához, akkor elvégezheti a csatlakozást. A csatlakozás olyan SQL művelet, amely jelzi, hogyan kommunikál két adatforrás, és szükség van arra, hogy az egyik forrásból származó adatokat az eredményekbe, ha a másikban nincsenek megfelelő adatok.

A két forrásból származó adatok kombinálásához egy közös műveleten végre kell hajtania egy csatlakozási műveletet. Ha a mező értékei megegyeznek, a lekérdezés eredményeiben lévő rekordok adatait kombinálják.

Az egyesítésen kívül az egyesítés művelete azt is jelzi, hogy a rekordot táblázatban kell-e feltüntetni egy táblából, ha nincs megfelelő rekord a hozzá tartozó táblázatban.

Tegyük fel például, hogy egy lekérdezésben két tábla - "asztal-kliens" és "táblázat-sorrend" adatait kell használni. Mindkét táblázat tartalmazza az "ÜgyfélID" mezőt, amely meghatározza az ügyfelet. A "tableClient" tábla minden rekordja tartalmazhat egy vagy több megfelelő rekordot a "tableTable" táblában, és a megfelelő értékeket az "ClientID" mező értékei határozzák meg.

Ha azt szeretnénk, hogy összekapcsolják az asztalokat, hogy a lekérdezés kombinált rekord ezeket a táblákat, kivéve azokat a rekordokat, amelyek nem rendelkeznek megfelelő bejegyzések az egyik asztal, a FROM javaslat nézhet a következő (sortöréseket hozzá olvashatóság):

A Microsoft Office Access programban a csatlakozási operátor a SELECT utasítás FROM szakaszában van megadva. Az egyesületek két típusa létezik: belső és külső. Ezeket a következő szakaszokban ismertetjük.

Belső egyesület

A belső csatlakozás a legáltalánosabb típusú unió. Belső csatlakozással végrehajtott lekérdezés végrehajtásakor csak azokat a rekordokat, amelyeknek ugyanazok az értékei vannak mindkét összevont táblában, szerepelnek az eredményben.

A belső csatlakozás a következő szintaxissal rendelkezik (az olvashatósági okok miatt hozzáadott vonalszakasz):

Az alábbi táblázat mutatja be az INNER JOIN művelet különböző elemeit.

Kapcsolódó cikkek