Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

SQL.

Hasonló előadás


Az előadások a következő témára: "SQL."— Előadás másolata:

1 SQL

2

3

4

5 SQL „résznyelvei” SQL DDL (Data Definition Language = Adat Definíciós Nyelv), mely lehetővé teszi a felhasználók számára, hogy új adatbázisokat és azok sémáját hozhassák létre, vagyis az adatok logikai sémáját egy speciális nyelven adhassák meg. A használatos sémakezelő utasítások közé tartozik például az adatbázisok, táblák létrehozása, illetve ezek törlése, módosítása. SQL DML (Data Manipulation Language = Adat Manipulációs Nyelv), mely lehetővé teszi a felhasználók számára, hogy az adatokat módosíthassák. A használatos adatkezelő utasítások például az adatok törlése, módosítása, vagy új adat felvétele.

6 SQL „résznyelvei” SQL DQL (Data Query Language = Adat Lekérdező Nyelv), mely segítségével a felhasználók az adatokat lekérdezhetik, kilistázhatják valamilyen szisztéma szerint. Az adatok lekérdezését egyes irodalmakban legtöbbször a DML körében említik, de a relációs modellben betöltött fontosságuk miatt a lekérdező utasítások külön csoportot alkotnak, melyekre a Query elnevezést használjuk. SQL DCL (Data Control Language = Adatelérést Vezérlő Nyelv) Ezzel szabályozhatjuk, vezérelhetjük a műveletek végrehajtását, hiszen a megvalósított relációs adatbáziskezelő nyelvek hatásának köszönhetően az SQL tartalmaz a relációs adatmodellhez szorosan nem kötődő utasításokat is.

7 Az SQL utasításokat több különböző módon juttathatjuk el egy relációs adatbázis-kezelő rendszerhez.
Önálló SQL: Az SQL nyelv önálló alkalmazása esetén csak a nyelv utasításai állnak rendelkezésre. nincs megfelelő alkalmazás a feladat elvégzésére, negyedik generációs nyelvekbe építve használják az alkalmazások fejlesztői. Ilyen eszközök például a jelentéskészítő, az űrlapkészítő, vagy a menükészítő. Beágyazott SQL: A beágyazott SQL esetén egy harmadik generációs nyelvbe (C, PL/SQL, Pascal, Fortran, ... stb.) ágyazva alkalmazzuk az SQL nyelv elemeit. Az algoritmikus feladatokat a harmadik generációs nyelv, az adatbázis műveleteket, pedig az SQL végzi el.

8 Összefoglalva Szabványosított lekérdező nyelv;
Relációs algebrán alapszik; Szöveges, nem algoritmikus, előíró jellegű utasításokat tartalmaz; Halmazorientált; Nem rekurzív nyelv; Négy utasításcsoportot tartalmaz: Adatdefiníciós, Adatmanipulációs, Adatlekérdező, Adatvezérlő; Felhasználható önálló vagy beágyazott SQL-ként is.

9

10

11

12 SQL szintaktikai és interaktív használati szabályai
Utasítások Alapszavak Azonosítók Kifejezések Konstansok Listák Elválasztójelek Nyelv utasítási záradékokat használnak (használatuk nem mindig kötelező, de a sorrend kötött!)

13 Interaktívan kiadott utasítások
Az utasításokat interpreter dolgozza fel. Szintaktikailag ellenőrzi Értelmezi Végrehajtja Eredményeket megjeleníti. Ez a feldolgozási mód nem teszi lehetővé több utasítás együttes végrehajtását

14 Azonosítók egyedisége!!!
Adatbázis Adatbáziselemek Alaptáblázatok Nézetek oszlopainak megnevezésére használatosak Az azonosítók betűvel kezdődnek, a második pozíciótól kezdve betűket, számjegyeket, aláhúzás jelet tartalmazhatnak. Azonosítók egyedisége!!!

15

16

17 Utasítások használatának szabályai
A nyelv szabad írásmódú (utasítások tetszés szerint tördelhetők) Záradékokat új sorba kell írni Az utasítások végét pontosvesszővel kell jelezni. Utasítás kiadható kisbetűs, nagybetűs és kevert formában is. Utasításokban elhelyezett listákban az elemeket vesszővel kell elválasztani. Utasítások egy részébe más utasítások is beágyazhatók. Utasítások alapszavai és egyéb elemei közé elválasztójelként szóközt vagy soremelést kell tenni. A zárójelek, vesszők betöltik az elválasztójel szerepét. Az elemek elválasztása szempontjából felesleges szóközök, zárójelpárok nem okoznak hibát.

18 Adattípusok, műveletek
Az SQL nyelvben Numerikus Szöveges Dátum Bináris Logikai Szerkezet nélküli adattípusok használatára van lehetőség.

19 Későbbiekben használatos jelmagyarázat
[ ] opcionális, nem kötelezően megadandó elem <> Kötelezően megadandó elem … Tetszés szerint ismétlődő elem v. utasításrész | jellel elválasztott elemek közül egy használható { } Az elemek közül egyet kötelező megadni.

20 Adattípusok BIT (n) Rögzített hosszúságú bitsorozat BIT VARYING (n)
Változó hosszúságú bitsorozat SMALLINT INTEGER LONG Egész DECIMAL (x,[y]) Fixpontos valós(x az összes jegyek, y a tizedesjegyek száma) FLOAT REAL DOUBLE PRECISION Lebegőpontos DATE Dátum TIME Idő TIMESTAMP Dátum és időpont INTERVAL Időtartam CHAR (n) Rögzített hosszúságú karaktersorozat CHAR VARYING (n) Változó hossúságú karaktersorozat (szöveg, kép)

21 Műveletek az alapvető adattípusok körében
Matematikai műveletek Előjelváltás (+,-) Számtani alapműveletek (+,-,*,/) Hatványozás (** vagy ^) Karaktersorozatokkal végezhető műveletek Összefűzés (+, ||, &) Bináris és logikai műveletek Tagadás (NOT), és (AND), vagy (OR) Dátumok, időpontok és időtartamok körében használható műveletek Számtani alapműveletek

22 Valamennyi adattípusnál használható
Összehasonlító műveletek: Théta operátorok: =, <, >, <=, >=, <> Összehasonlító műveletek tagadása: NOT kulcsszó <,>,= tagadása: ! Jel használható PL: Nem egyenlő összehasonlító művelet: != vagy: <>, vagy: NOT = Karaktersorozat összehasonlítása balról jobbra a karakterek belső kódja alapján történik. Kis és nagybetűk belső kódja nem egyező!! (konvertálás kisbetűsre, vagy nagybetűsre)

23 Predikátumok- feltételek előírására
IS LIKE BETWEEN IN ANY ALL SOME EXIST UNIQUE A predikátumok kiválasztási, il. vizsgálati feltételekben használhatók Adatdefiníciós utasítások (CHECK), adatkezelő utasítások (WHERE, HAVING) záradékaiban

24 Kifejezések kiértékelési sorrendje PRECEDENCIA szabály
Zárójelek belülről kifelé Függvényhívások Matematikai, string és dátum műveletek Előjelváltás Hatványozás Szorzás, osztás (multiplikatív műveletek) Összeadás, kivonás (összevonási műveletek) Összehasonlító műveletek Logikai műveletek Not, AND, OR Azonos szintű műveletek: balról jobbra

25 NULL értékek Nem összehasonlító műveletek eredménye NULL érték lesz, ha legalább az egyik operandus NULL érték! Függvényeknél egyedileg szabályozott, hogy NULL értékű argumentum esetén milyen értéket adnak vissza. Összehasonlító műveletek eredménye: ISMERETLEN igazságérték lesz, ha legalább az egyik operandus NULL értékű.

26 Adatdefiníciós utasítások
LÉTREHOZÓ utasítások (adatbázissémát, osloptípust, adatbáziselemet, önálló feltételeket): CREATE kulcsszóval, Törlő utasítások: DROP kulcsszóval kezdődnek. Módosító utasítások (típust vagy szerkezetet) kezdőszava: ALTER Elemre, típusra, feltételre utaló kulcsszavak pl: TABLE, DOMAIN, stb

27 PL: 1.oszloptípusok definiálása
CREATE DOMAIN <oszloptípusnév> AS <SQL-adattípus> [DEFAULT <konstans>] – alapértelmezett érték DEFAULT záradékkal [CONSTRAINT <feltételnév> CHEK ( <vizsgálati feltétel>)]; Értékkészletre vonatkozó megszorítások CONSTRAINT záradékkal (pl. Null érték kizárása, oszlop értékei milyen halmazba, mely értékhatárok között legyenek

28 PL. 2. Oszloptípusok módosítása (ALTER DOMAIN)
ALTER DOMAIN <oszloptípusnév> { Az elemek közül egyet kötelező megadni! SET DOMAIN DEFAULT <konstans> I DROP DOMAIN DEFAULT I Alapért. érték törlése ADD CONSTRAINT <feltételnév> CHEK ( <vizsgálati feltétel>) I Értékkészletre vonatkozó megszorítás DROP CONSTRAINT <feltételnév> }; Új alap- értelmezett érték Meglévő meg- szorítás törlése

29 PL3. Oszloptípus törlése
DROP DOMAIN <oszloptípusnév>;

30 Táblázatok létrehozása
CREATE [ {GLOBAL I LOCAL} TEMPORARY] TABLE <táblázatnév> ( <oszlopnév> <adattípus> [ DEFAULT <konstans>] [ CONSTRAINIT ] [, <oszlopnév> <adattípus> [DEFAULT <konstans>] [CONSTRAINT]… ); Létrehozunk egy táblázatot. Az oszlopok sorrendje nem számít (lekérdezésnél ez a sorrend) TEMPORARY- a táblázatot ideiglenes jelleggel hoztuk létre. GLOBAL – munka végéig LOCAL – tranzakció végéig CONSTRAINT záradék: elsődleges és idegen kulcsok definiálása Bevihető értékek szabályainak leírása

31 Kulcsok megadása Egyedi kulcs esetén: oszlopnév és adattípus megadását követően közvetlenül: Összetett esetén oszlopdefiníciós lista után: CONSTRAINT <feltételnév> { PRIMARY KEY I UNIQUE } CONSTRAINT <feltételnév> FOREIGN KEY REFERENCES <táblázatnév> (<oszlopnév>) [MATCH { FULL IPARTIAL} ] [módosítási záradék] [törlési záradék] CONSTRAINT <feltételnév> { PRIMARY KEY I UNIQUE } (oszlopnévlista) CONSTRAINT <feltételnév> FOREIGN KEY (oszlopnévlista) REFERENCES <táblázatnév> (oszlopnévlista) [MATCH {FULL I PARTIAL} ] [módosítási záradék][törlési záradék]

32 MATCH záradék Az idegen kulcsokat definiáló CONSTRAINT záradékban a MATCH záradék határozza meg, hogy az idegen kulcs mennyire illeszkedik a hivatkozott táblázat elsődleges kulcsához. FULL (alapért) – teljes egyezést követel PARTIAL – megengedi, hogy az idegen kulcs értékei között NULL érték is szerepeljen Minden CONSTRAINT záradék egy módosítási és egy törlési záradékot is tartalmaz. ( az adatbázis kezelő rendszernek lehet előírni a hivatkozott sor módosítását vagy törlését követően végrehajtandó műveletet.

33 Záradékok szintaxisa ON {DELETE I UPDATE} {CASCADE I SETNULL I SET DEFAULT I NO ACTION} CASCADE: tovagyűrűző művelet SET NULL: NULL értékre állítás SET DEFAULT: Alapértékre állítás NO ACTION: semmilyen művelet nem következik

34 LEKÉRDEZÉSEK Táblákat kapcsolhatunk össze
Bizonyos feltételeknek eleget tevő rekordok kikeresése Adatok sorba-rendezése Megadott szempontok szerinti válogatás

35 Lekérdezések típusai Választó lekérdezések – leggyakoribb Elvégzi:
a táblák kapcsolatával létrejövő adatok együttes kezelését Adatok sorbarendezését Feltételek alapján való kiválogatását Összesítését Csoportok képzését (Kifejezés szerkesztő!!!- matematikai, karakteres, dátum, logikai és összehasonlító művelet, konstansok, függvények)

36 Kulcsszavak (ACCESS) Group By – csoportosítás egyes oszlopok szerint
Where – feltételmegadás Expression – kifejezésmegadás First- Csoport első sora Last – csoport utolsó sora Avg – átlag Count- darbszám Max, min, Sum StDev –szórás Var – variancia (szórásnégyzet)

37 Lekérdezések típusai Kereszttáblás lekérdezés – kimutatás táblázatot hoz létre Táblakészítő lekérdezés Előre megadott művelet elvégzésével új táblát hoz létre (Az adatok nem módosíthatók) Frissítő lekérdezés Rekordok módosítására, ha a módosítást csak a rekordok egy csoportjával szeretnénk elvégezni. Hozzáfűző lekérdezés Meglévő táblához fűz rekordokat Törlő lekérdezés Egyesítő lekérdezés Átadó lekérdezés Adatdefiniáló lekérdezés

38 Lekérdezések - Operátorok
Összehasonlító operátorok: =, <, >, <=, >= Logikai operátorok: and, or, not Aritmetikai operátorok: +, -, *, / Egyéb operátorok: szűrőként használatos: LIKE pl:Like „B?dapest”, „Like B*” Értékek közé eső érték: Between… and IN operátorral több Or operátor helyettesíthető IsNull: üres mezőadatokat atrtalmazó rekordok kiválogatása

39 SQL ADATKEZELŐ UTASÍTÁSOK
Tárolt adatok lekérdezése: SELECT Záradékok kiértékelési sorrendben: FROM, WHERE, GROUP BY, HAVING, SELECT, ORDER BY FROM záradék: melyik táblázat(ok) és/vagy nézetek eredményei fognak a lekérdezés eredményeként megjelenni WHERE záradék: kiválasztás reláció művelet azok a sorok kerülnek kiválasztásra, amelyek eleget tesznek a feltételnek. GROUP BY záradék: csoportosítás azon oszlop(ok) megadása ami alapján a csoportosítást el kell végezni (balról jobbra sorrend) Having záradék: csoportokból választ kívánt csoportokat.

40 PL (Select-From záradék):
SELECT munka_szám FROM munka WHERE óraszám*óradíj = ( SELECT max(óraszám*óradíj) FROM munka ); A lekérdezés megkeresi a legnagyobb árbevételű munkáinkat. – akkor használható jól, ha több is van belőle.

41 PL (WHERE záradék): WHERE
Szűrési feltételeket fogalmaz meg, amelyek szűkítik az eredményhalmazt (a Descartes-szorzathoz képest). Példa: SELECT * FROM Beteg, Kezeles WHERE Beteg.ID = Kezeles.BetegID AND Kezeles.Datum = CURRENT DATE A fenti lekérdezés visszaadja, milyen kezeléseket végeztek ma, és melyik betegeken. A WHERE szakaszban a Boole-algebra kifejezései használhatók, OR, AND és NOT operátorokkal.

42 PL (GROUP BY záradék): GROUP BY
Egyes sorok összevonását, csoportosítását írja elő az eredménytáblában. Példa: SELECT COUNT(*), Tulajdonos FROM Szamla WHERE Allapot = 'N' GROUP BY Tulajdonos A fenti példa a Tulajdonos oszlop alapján csoportosítja a sorokat. A SELECT részben lévő COUNT(*) egy-egy csoport sorainak számát adja vissza, az összevonás előtt.

43 PL (HAVING záradék): HAVING
A WHERE-hez hasonlóan itt is szűrést fogalmazhatunk meg, azonban itt a csoportosítás utáni eredményhalmazra. Példa: SELECT COUNT(*), Tulajdonos FROM Szamla WHERE Allapot = 'N' GROUP BY Tulajdonos HAVING COUNT(*) > 1 Az előző példához képest itt annyi a módosulás, hogy csak azok a csoportok jelennek meg, amelyek egynél több sorból lettek összevonva.

44 PL (ORDER BY záradék) ORDER BY
Az eredményhalmaz rendezését adja meg. Példa: SELECT * FROM Beteg ORDER BY Szuletes DESC A fenti példa a betegek listáját adja vissza, születési dátum szerint sorba rendezve, elöl a legfiatalabb beteggel.

45 Aggregált függvények Összesítő, vagy oszlopfüggvények:
AVG ( <oszlopnév>) - numerikus típusú oszlop adatértékeinek átlagát határozza meg COUNT (*I <oszlopnév>) a sorok ill. az oszlop adatértékeinek számát adja meg (NULL értéket is figyelembe veszi) MAX MIN SUM (DISTINCT kulcsszó- ismétlődő adatértékek közül csak egyet vesz figyelembe)


Letölteni ppt "SQL."

Hasonló előadás


Google Hirdetések