A lekérdezés további finomítása az SQL-utasítások szerkesztésével

A lekérdezés további finomítása az SQL-utasítások szerkesztésével

Fontos : Ez a cikk gépi fordítással lett lefordítva, lásd a jognyilatkozatot. A cikk angol változatát itt találhatja meg.

Ha a lekérdezések nem nyújtják a kívánt teljesítményt, akkor néhány alapvető SQL-utasítással tovább finomíthatja őket. Az alábbiakban áttekintünk néhány SQL-utasítástípust és a hozzájuk tartozó záradékokat és részeket, amelyek szerkesztésével esetleg elérhető a kívánt eredmény.

Megjegyzés :  Ez a témakör nem vonatkozik az Access-webappokra, vagyis az Access használatával tervezett és online közzétett adatbázisokra.

Tartalom

Select utasítás létrehozása

A SELECT záradék testreszabása

A FROM záradék testreszabása

A WHERE záradék testreszabása

Testreszabás a UNION operátorral

Select utasítás létrehozása

Minden SQL-utasításhoz két vagy három záradék tartozik. A SELECT záradék közli az adatbázissal, hogy hol keresse az adatokat, valamint meghatározza a visszaadandó adatok körét.

Megjegyzés : A SELECT utasításokat mindig pontosvessző (;) zárja le, amely vagy az utolsó záradék végén, vagy az SQL-utasítás utolsó sorát követő külön sorban állhat.

Az alábbi SELECT utasítás arra utasítja az Accesst, hogy olvassa be a Contacts (Névjegyek) táblájának E-mail Address (E-mail cím) és Company (Vállalat) oszlopában található adatokat, mégpedig azokból a sorokból, amelyekben a City (Település) oszlopban „Seattle” szerepel.

SQL-objektumlap SELECT utasítással

A fenti lekérdezésnek három záradéka van: SELECT, FROM és WHERE.

1. A SELECT záradék felsorolja azokat az oszlopokat, amelyekben a használni kívánt adat, valamint egy operátor (SELECT) és két ezt követő azonosító található. Ha egy azonosítóban szóközök vagy más speciális karakterek szerepelnek (például az E-mail Address azonosítóban), az azonosítót szögletes zárójelbe kell tenni.

2. A FROM záradék a forrástáblát azonosítja. Ebben a példában egy operátort (FROM) tartalmaz, amelyet egy azonosító (Contacts) követ.

3. A WHERE záradék megadása nem kötelező. A példában egy operátort (WHERE) tartalmaz, amelyet egy kifejezés (City="Seattle") követ.

A választó lekérdezések című témakörben talál további információt Egyszerű választó lekérdezések létrehozását.

A leggyakoribb SQL-záradékok listája az alábbi:

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

Mindegyik SQL-záradék kifejezésekből áll. Az alábbi lista bemutat néhány gyakori SQL-kifejezést.

SQL-kifejezés

Definíció

Példa

identifier

Egy adatbázis-objektum, például oszlop azonosítására szolgáló név.

[E-mail cím] és Vállalat

operátor

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

AS

constant

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

42

expression

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

A SELECT záradék testreszabása

Testreszabás

Példa

Csak a különböző értékek megjelenítése.

Használja a DISTINCT kulcsszót a SELECT záradékban.

Ha például vevői különböző fiókirodákból származnak, és közülük többnek megegyezik a telefonszáma, de Ön mindegyik telefonszámot csak egyszer szeretné megjeleníteni, a következőhöz hasonló SELECT záradékot alkalmazhat:

SELECT DISTINCT [txtCustomerPhone] 

Az azonosító megjelenésének módosítása, hogy könnyebben lehessen olvasni az Adatlap nézetben.

A SELECT záradékban használja az AS operátort (műveletet megjelenítő vagy módosító kulcsszó) mezőaliasszal. A mezőalias egy név, amelyet az eredmények olvashatóbbá tétele érdekében rendel hozzá a mezőhöz.

SELECT [txtCustPhone] AS [Customer Phone]

A FROM záradék testreszabása

Testreszabás

Példa

Táblaalias, azaz másik név hozzárendelése a táblákhoz a SELECT utasításban. A táblaaliasokat akkor érdemes alkalmazni, ha a táblák nevei hosszúak, de még inkább akkor, ha a különböző táblákban egyező nevű mezők vannak.

Ha két mezőből szeretné összegyűjteni az adatokat, és mindkét mező neve ID, de az egyik a tblCustomer nevű táblából, a másik a tblOrder nevű táblából származik:

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

Az AS operátorral táblaaliasokat határozhat meg a FROM záradékban:

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

Ezeket a táblaaliasokat ezután felhasználhatja a SELECT záradékban az alábbiak szerint:

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

A két adatforrásból származó rekordpárok összevonása illesztésekkel, vagy annak megadása, hogy valamelyik táblából akkor is szerepeljen rekord az eredmények között, ha a kapcsolódó táblában nincs hozzá tartozó rekord.

Illessze a táblákat úgy, hogy a lekérdezés összevonja a táblákból származó elemeket, és kizárja azokat, amelyeknek a másik táblában nincs megfelelője.

A FROM záradék a következőhöz hasonló lehet:

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

Az illesztésekkel kapcsolatos tudnivalók

Az illesztéseknek két típusa létezik: belső és külső illesztés. A lekérdezésekben a belső illesztés gyakoribb. Ha belső illesztéssel futtat egy lekérdezést, akkor az eredmények között csak azok a tételek jelennek meg, amelyeknek mindkét illesztett táblájában van közös értéke.

A külső illesztések azt határozzák meg, hogy a lekérdezés figyelembe vegye-e az adatokat, ha nincsenek azonos értékek. A külső illesztések irányítottak, tehát megadható, hogy a lekérdezés az illesztésben megadott első tábla összes rekordját (bal oldali illesztés) vagy az illesztésben megadott második tábla összes rekordját (jobb oldali illesztés) tartalmazza-e. Egy külső illesztésnek a következő az SQL-szintaxisa:

FROM table1 [ LEFT | RIGHT ] JOIN table2
ON table1.field1 = table2.field2

Lásd: a táblák és lekérdezések illesztéseillesztések használatáról további információt.

Vissza a lap tetejére

A WHERE záradék testreszabása

A WHERE záradékot, amely segít a lekérdezés által visszaadott elemek számának korlátozása feltétel tartalmazza. Lásd: a lekérdezési feltételeket bemutató példákat , és hogyan működnek.

A következőkben példát mutatunk arra, hogyan szűkítheti a lekérdezés eredményeit az alapszintű WHERE záradék módosításával. Tegyük fel, hogy szeretné megkeresni egy vevő telefonszámát, de csak arra emlékszik, hogy a vezetékneve Bagel. Ebben a példában a vezetékneveket a LastName mező tárolja, így az SQL-szintaxis a következő lenne:

WHERE [LastName]='Bagel'

A WHERE záradékkal olyan oszlopok adatforrásait is egyesítheti, amelyek egymásnak megfeleltethető adatokat tartalmaznak, de az adattípusuk különbözik. Ez a lehetőség azért hasznos, mert a táblák nem illeszthetők különböző adattípusú mezőkön keresztül. Ilyenkor a LIKE kulcsszóval az egyik mezőt a másik mezőre vonatkozó feltételként határozhatja meg. Ha például az Assets (Eszközök) tábla és az Employees (Alkalmazottak) tábla azon adatait szeretné használni, amelyeknél az Assets tábla eszköztípus mezőjében szereplő értékhez az Employees tábla Quantity (Mennyiség) mezőjében a 3-as érték tartozik, akkor a következő WHERE záradékot használhatná:

WHERE field1 LIKE field2

Fontos :  Ha a mező összesítő függvényben szerepel a WHERE záradékon belül, akkor nem határozhatók meg rá feltételek. Az összesített mezőkön a HAVING záradékot kell alkalmazni.

Vissza a lap tetejére

Testreszabás a UNION operátorral

A UNION operátort akkor kell alkalmazni, ha több hasonló választó lekérdezés eredményét összevontan szeretné megjeleníteni. Ha például az adatbázisnak van egy Termékek és egy Szolgáltatások táblája, és mindkettőnek három mezője: kizárólagos ajánlat, illetve termék vagy szolgáltatás, ár, valamint jótállás, illetve garancia. Ebben az esetben a Termékek tábla jótállás mezője és a Szolgáltatások tábla garancia mezője lényegében ugyanazt az információt tartalmazza. Ekkor a két tábla három mezőjét a következőképpen egyesítheti egy egyesítő lekérdezéssel:

SELECT name, price, warranty, exclusive_offer
FROM Products
UNION ALL
SELECT name, price, guarantee, exclusive_offer
FROM Services;

A lekérdezés futtatásakor az egyes kapcsolódó mezőhalmazok egyetlen kimeneti mezőbe kerülnek. Ha az eredmények között a többször előforduló elemeket is meg szeretné jeleníteni, akkor használja az ALL operátort.

Megjegyzés :  A két SELECT utasításban ugyanannyi kimeneti mezőnek kell lennie, ugyanabban a sorrendben, és a mezőpárok adattípusának meg kell egyeznie vagy egymással kompatibilisnek kell lennie. Egyesítő lekérdezésekben a Szám és a Szöveg adattípus kompatibilisnek számít.

Az egyesítő lekérdezésekről a Több lekérdezés eredményének együttes megjelenítése egyesítő lekérdezéssel című témakörben olvashat bővebben.

Vissza a lap tetejére

Megjegyzés : Gépi fordítás jognyilatkozata: Ez a cikk számítógép által, emberi közreműködés nélkül lett lefordítva. A Microsoft ezeket a gépi fordításokat azért nyújtja, hogy az angol nyelvet nem beszélők minél több tartalomhoz tudjanak hozzáférni a Microsoft termékeivel, szolgáltatásaival és technológiáival kapcsolatban. A gépi fordítás miatt előfordulhat, hogy a szöveg szóhasználati, szintaktikai vagy helyesírási hibákat tartalmaz.

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.

×