online kép - Fájl  tubefájl feltöltés file feltöltés - adja hozzá a fájlokat onlinefedezze fel a legújabb online dokumentumokKapcsolat
  
 

Letöltheto dokumentumok, programok, törvények, tervezetek, javaslatok, egyéb hasznos információk, receptek - Fájl kiterjesztések - fajltube.com

 

Online dokumentumok - kep
  

Az SQL lekérdezőnyelv hasznalata

számítógépes



Fájl küldése e-mail



egyéb tételek

 
Átviteli minöséggel kapcsolatos kérdések
Outpot perifériak
SSADM Strukturalt rendszerelemzési és -tervezési módszer
Szamítógép halózatok előnyei
Automatika Segédlet Elektronikus eszközök szak II: évfolyam Nappali Müszaki Manager szak II: évfolyam Nappali
A videokonferencia mint prezentació
Hashelés és ritka indexes szervezési módszerek
Web mail és e-mail IP alapon
Kezdetek ++
Az SQL lekérdezőnyelv hasznalata
 
 

Az SQL lekérdezőnyelv használata


A különböző adatbáziskezelő rendszerek más-más lehetőségeket adnak az adatbázisban tárolt adatok visszanyerésére, lekérdezések készítésére. Használhatnak eltérő tervező felületet, vagy más programnyelvet.

Ezeknek a különbözőségeknek az áthidalására hozták létre az SQL nyelvet ( 838i86i Standard Querry Language, szabványos lekérdező nyelv). A nyelvnek lehetnek helyi változatai, de alapjaiban minden rendszerben ugyanaz.

Az SQL ún. beágyazott programnyelv, azaz más nyelvekbe (Visual Basic, Delphi) beépíthetően működik. Parancsai az adatbázisok, táblák létrehozására, módosítására, adatok beszúrására, módosítására, törlésére, lekérdezésére stb. irányulnak.


Itt most az SQL választó lekérdezést létrehozó parancsát (SELECT) tárgyaljuk.


A példákhoz a következő három táblás adatbázist tételezzük fel:

ÁRUCIKKEK: Megnevezés, Beszerzési Ár, Készlet, Szállítókód, Fajtakód

SZÁLLÍTÓK: Kód, Cégnév, Kapcsolattartó



FAJTÁK: Kód, Megnevezés

Az egyszerűség kedvéért a következőket feltételezzük:

minden árucik megnevezése más

egy adott árucikket mindig azonos szállítótól rendelünk

minden árucikkre azonos, 30% kiskereskedelmi árrést teszünk



A SELECT parancs általános alakja:

SELECT

mezőlista

FROM táblák

WHERE rekord-szűrőfeltételek

GROUP BY csoportosítási szempontok

HAVING csoport-szűrőfeltételek

ORDER BY rendezési szempontok

A lekérdezésben szereplő mezők és táblák felsorolása kötelező, a többi záradék elmaradhat.


MEZŐLISTA

A lekérdezésben szereplő mezők, kifejezések neveit tartalmazza, vesszővel elválasztva. Szabályok:

- Ha az adott nevű mező egynél több (a lekérdezésben használt) táblában is benne van, akkor a táblák nevét is meg kell adni (egyébként nem kötelező – de lehet):

SELECT Árucikkek.Megnevezés, Szállítókód, AVG(Készlet) FROM Árucikkek. (Az AVG függvény átlagot számol.)

- Ha egy mező neve nem egy szóból áll, szögletes zárójelbe kell tenni: [Beszerzési Ár].

- A lekérdezés oszlopait átnevezhetjük az AS kulcsszó használatával (alapértelmezésben az oszlopok nevei megegyeznek az illető mezőnevekkel):

SELECT [Beszerzési Ár]*1.3 AS [Eladási ár] FROM Árucikkek (a szögletes zárójel azért kellett, mert az új név nem egy szóból áll).

FROM záradék – a táblák listája

A lekérdezésben szereplő összes táblát fel kell sorolni, vesszőkkel elválasztva. Ha egy tábla neve nem egy szóból áll, szögletes zárójelbe kell tenni. Pl. Árucikkek, Szállítók.

WHERE záradék – rekordszintű szűrés

Arra vonatkozó feltételeket adunk itt, hogy mely rekordok jelenjenek meg a lekérdezésben.

Pl. SELECT Megnevezés FROM Árucikkek WHERE [Beszerzési Ár]>5000.

Több feltételt is összekapcsolhatunk az AND („és”) illetve OR („vagy”) szavakkal. Az AND-del összekapcsolt feltételek mindegyikének teljesülnie kell ahhoz, hogy a rekord bekerüljön az eredményhalmazba, míg az OR-ral összekapcsolt feltételek egyikének teljesülése már elég.

Példák:    SELECT Megnevezés FROM Árucikkek WHERE ([Beszerzési Ár]>5000) AND (Készlet<100) (az 5000-nél drágább, kevés készletű cikkek)



SELECT Megnevezés FROM Árucikkek WHERE (Készlet<50) OR (Készlet>7000) (a nagyon kevés illetve nagyon sok készletű cikkek)

A WHERE záradékot arra is felhasználhatjuk, hogy két táblát összekapcsoljunk vele:

SELECT Megnevezés, Cégnév FROM Árucikkek, szállítók

WHERE Szállítók.Kód=Árucikkek.Szállítókód

(Itt egy listát kapunk az árucikkekről és az adott cikket szállító cégről. A táblaneveket azért tettük ki, hogy egyértelmű legyen a feltétel megadása – nem lett volna kötelező, mert minden szereplő mezőnév egyedi, nem fordul elő két különböző táblában.)

GROUP BY záradék – csoportképzés

Csoportosítási szempontokat fogalmazhatunk meg a lekérdezés számára. Példák:

SELECT Fajták.Megnevezés, COUNT(Árucikkek.Megnevezés) FROM Fajták, Árucikkek WHERE Árucikkek.Fajtakód=Fajták.Kód GROUP BY Fajták.Megnevezés

Itt az árucikk-fajtákat csoportosítottuk (pl. mosóporok, kenyerek, szappanok stb.), és megszámoltuk, hogy az egyes csoportokba hányfajta árucikk tartozik (a COUT függvénnyel megszámolhatunk adott tételeket). A WHERE záradékban kapcsoltuk össze a Fajták és Árucikkek táblákat (a táblanevek ismét csak a jobb érthetőség miatt vannak ott).

SELECT Cégnév, SUM([Beszerzési Ár]*Készlet) FROM Szállítók, Árucikkek WHERE Árucikkek.Szállítókód=Szállítók.Kód GROUP BY Cégnév

Itt azt számoltuk ki, hogy az egyes szállítóktól mekkora összegű árukészletünk van (a SUM függvénnyel adott tételek összegét kapjuk meg). A szállítók neve alapján képeztük a csoportokat, a WHERE záradékban kapcsoltuk össze a Szállítók és Árucikkek táblákat.

HAVING záradék – csoportszintű feltétel

Az előző pontban ismertetett csoportosítással kapcsolatos. Itt nem az egyes rekordokra, hanem az egész csoportra adunk valamilyen feltételt.

Pl.  SELECT Cégnév, MAX([Beszerzési Ár] FROM Szállítók, Árucikkek WHERE Szállítók.Kód=Árucikkek.Szállítókód GROUP BY Cégnév HAVING MAX([Beszerzési Ár])>10000

Itt azokat a szállítókat listázzuk, akiknél a legdrágább áru ára meghaladja a 10000 Ft-ot (a MAX függvény adott tételek közül a legnagyobbat adja). A szállítók csoportjait abból a szempontból vizsgáljuk, hogy az általuk szállított áruk maximális értéke meghaladja-e a 10000-et.

ORDER BY záradék – rendezés

Az eredmény-lista rendezési szempontját adjuk meg itt.

Pl.  SELECT Megnevezés, [Beszerzési Ár]*1.3 FROM Árucikkek ORDER BY Megnevezés

Ebben a listában az árucikkek nevét és eladási árát kapjuk, a neveket ABC-rendbe rakva.

SELECT Megnevezés, [Beszerzési Ár]*1.3 FROM Árucikkek

ORDER BY [Beszerzési Ár] DESC

Itt az árukat az eladási ár alapján visszafelé rendeztük (ezt a DESC szócska garantálja) – tehát a legdrágább van legelöl. (Igaz, hogy a beszerzési árat rendeztük, de ez a sorrend megegyezik az eladási ár szerinti sorrenddel, tekintve, hogy minden árura egyformán 30%-ot teszünk rá.)


Találat: 1188