31
Az SQL nyelv alapjai

Az SQL nyelv alapjai

  • Upload
    zarola

  • View
    69

  • Download
    4

Embed Size (px)

DESCRIPTION

Az SQL nyelv alapjai. Az SQL nyelv jellemzői. Az SQL a Structured Query Language (Struktúrált Lekérdező Nyelv) rövidítése, amely adatbázis-kezelő rendszerek szabványos lekérdező nyelve. Nem algoritmikus nyelv, nem tartalmaz elágazást, ciklust,nem alkalmas rekurzív feladatok végrehajtására. - PowerPoint PPT Presentation

Citation preview

Page 1: Az SQL nyelv alapjai

Az SQL nyelv alapjai

Page 2: Az SQL nyelv alapjai

Az SQL nyelv jellemzői

Az SQL a Structured Query Language(Struktúrált Lekérdező Nyelv) rövidítése, amely adatbázis-kezelő rendszerek szabványos lekérdező nyelve.

Nem algoritmikus nyelv, nem tartalmaz elágazást, ciklust,nem alkalmas rekurzív feladatok végrehajtására.

Halmazorientált nyelv, melynek műveletei egy adatbázis különböző objektumain hajthatók végre.

Page 3: Az SQL nyelv alapjai

Az SQL nyelv jellemzői

Az SQL egy beépülő nyelv, mely más programozási nyelvekkel együtt, abba beépülve használható.(pl.:a felhasználói felület DELPHI, lekérdezés SQL)

Az SQL nyelvben minden parancs egy kulcsszóval kezdődik, és pontosvesszővel fejeződik be.

A parancsok egymásba ágyazhatók.

Page 4: Az SQL nyelv alapjai

Az SQL nyelv alkotóelemei

Adatlekérdező nyelvaz adatbázisból lekérdezés útján történő információnyerés

Adatdefiníciós nyelvadatbázisok és adattáblák létrehozása, törlése, szerkesztése, módosítása

Adatmanipulációs nyelv az adattáblák karbantartása

Adatvezérlő nyelv jogosultságok és tranzakciók kezelése

Page 5: Az SQL nyelv alapjai

Lekérdező utasítások

Cél: az adatbázisból történő információnyerés

Az utasítás általános szerkezete:

SELECT (attribútumok) FROM (táblanév) WHERE(feltétel)

Page 6: Az SQL nyelv alapjai

Lekérdező utasítások

A lekérdező utasítás teljes felépítése:SELECT [DISTINCT|ALL] *|attr1,attr2,…FROM tábla1,[INNER JOIN|LEFT JOIN|RIGHT JOIN tábla3 ON feltétel][WHERE feltétel][GROUP BY oszlopnév1, oszlopnév2,…][HAVIG feltétel][ORDER BY oszlopnév1 | oszlopszám1, …..][ASC|DESC]

Page 7: Az SQL nyelv alapjai

Lekérdező utasítások

Egy tábla összes rekordjának megjelenítése:SELECT * FROM táblanév;(A * helyettesíthető a mezőnevek felsorolásával és viszont)

Azonos rekordok ismétlésének kihagyása:SELECT DISTINCT* FROM táblanév;

Page 8: Az SQL nyelv alapjai

Lekérdező utasítások

Projekció (vetítés)Az eredmény táblában csak a felsorolt mezők adatait jeleníti meg.

SELECT [DISTINCT] attrib1,attrib2 FROM táblanév;

SELECT DISTINCT nev,evfolyam,osztalyFROM tanulo;

Page 9: Az SQL nyelv alapjai

Lekérdező utasítások

Kiterjesztés A lekérdezésben szereplő mezők felhasználásával újabb mezőket hozunk létre.

SELECT nev,pontszam1+pontszam2 FROM tanulo;

Page 10: Az SQL nyelv alapjai

Lekérdező utasítások

Szelekció(Adott feltételnek megfelelő adatok megjelenítése, melyet a WHERE záradék után adunk meg)

SELECT atributum1,attributum2,….FROM táblanév WHERE feltétel;

SELECT * FROM tanuloWHERE (evfolyam=’’12’’) AND (osztaly=‘’B’’)

Page 11: Az SQL nyelv alapjai

Lekérdező utasítások

Összehasonlító operátorok:1. BETWEEN x AND y

A BETWEEN kifejezésben keresett értéknek x és y értékek közé kell esnie

2. IN (a,b,c..) a zárójelben egy halmazt adunk meg, a keresett kifejezés e halmaz eleme kell legyen.)

3. LIKE karakteres mezők összehasonlítására használható. A mintában a *,%,_? helyettesítő karakterek használhatók.SELECT *FROM tanulo WHERE nev LIKE ‘’S%’’;

Page 12: Az SQL nyelv alapjai

Lekérdező utasítások

Descartes-szorzatA relációk közötti szorzás műveletet valósítja meg, tehát a lehetséges variációkat állítja elő.

SELECT tablanev1.mezők,tablanev2.mezőkFROM tablanev1,tablanev2;

SELECT tanulo.*,tantargy.*FROM tanulo, tantargy;

Page 13: Az SQL nyelv alapjai

Lekérdező utasítások

Összekapcsolás:Több adattáblán elhelyezkedő információk egy táblára gyűjtésére használható.

Belső összekapcsolás:SELECT tanulo.*, tantargy.*FROM tanulo INNER JOIN tantargyON ( tanulo.tantargykod = tantargy.tantargykod);(csak mindkét táblában szereplő mezőadatok esetén)

Külső összekapcsolás:SELECT tanulo.*, tantargy.*FROM tanulo LEFT (RIGHT) JOIN tantargyON ( tanulo.tantargykod = tantargy.tantargykod);

(a tanuló tábla összes rekordja akkor is, ha nincs megfelelő a tantargy táblában)

Page 14: Az SQL nyelv alapjai

Lekérdező utasítások

CsoportosításA rekordokat egy adott mező értékei szerint csoportokra bontjuk. (Legtöbbször az adott mező azonos értékei alapján, pl. evfolyam=‘’12’’, osztaly=’’B’’)Ezután a csoportokon műveleteket hajthatunk végre, az eredményt újabb mezőben tárolhatjuk.

SELECT attribútum1, attribútum2[SUM,MAX,MIN,COUNT,AVG](attribútum3)FROM táblanév GROUP BY attrib4,attrib5;

SELECT evfolyam,osztaly,COUNT(tanulokod) AS‘’letszam’’ FROM tanulo GROUP BY evfolyam, osztaly;

Page 15: Az SQL nyelv alapjai

Lekérdező utasítások

A csoportosítás esetén használható függvények:

COUNT megadja a tábla sorainak számát SUM megadja a paraméterben szereplő oszlop

adatainak összegét AVG megadja a paraméterben szereplő oszlop

adatainak átlagát MIN megadja a paraméterben szereplő numerikus

adatok közül a legkisebbet MAX megadja a paraméterben szereplő numerikus

adatok közül a legnagyobbat

Page 16: Az SQL nyelv alapjai

Lekérdező utasítások

Lekérdezés csoportosítással létrejött táblában (csoportfeltételek megadása)WHERE helyett HAVING

SELECT attribútum1, attribútum2[SUM,MAX,MIN,COUNT,AVG](attribútum3)FROM táblanév GROUP BY attrib4,attrib5;HAVING csoportfeltétel

SELECT evfolyam,osztaly,COUNT(tanulokod) AS‘’letszam’’ FROM tanulo GROUP BY evfolyam, osztaly; HAVING COUNT(tanulokod)>20;

Page 17: Az SQL nyelv alapjai

Lekérdező utasítások

RendezésA lekérdezés eredmény relációjának rendezésére ORDER BY záradékkal

SELECT attribútum1, attribútum2 FROM relációORDER BY attribútum1[ASC,DESC],

attribútum2[ASC,DESC];

SELECT * FROM tanulo ORDER BY nev desc;

Page 18: Az SQL nyelv alapjai

Adattípusok

Az adattípusok (rendszerenként eltérők lehetnek):CHAR(n) n hosszúságú karaktersorozatVARCHAR(n) legfeljebb n hosszúságú karaktersorozatINTEGER egész szám (röviden INT)REAL valós (lebegőpontos) szám, másnéven FLOATDECIMAL(n[,d]) n jegyű decimális szám, ebből d tizedesjegyDATE dátum (év, hó, nap)TIME idő (óra, perc, másodperc)Az adattípushoz "DEFAULT érték" megadásával alapértelmezett érték definiálható. Ha ilyet nem adunk meg, az alapértelmezett érték NULL.

Page 19: Az SQL nyelv alapjai

Adatmanipulációs nyelv

Az adattáblák karbantartásának műveletei:

Új rekord beszúrása a táblábaINSERT INTO táblanév(attribútumlista)

VALUES(értéklistaINSERT INTO tanulo (kod,nev,evf,oszt)

VALUES(009,”Nagy János”,”12”,”b”);Használhatjuk a NULL értéketAz új rekord az utolsó után tárolódik

Page 20: Az SQL nyelv alapjai

Adatmanipulációs nyelv

MódosításA tábla meghatározott mezőinek módosítása:UPDATE táblanév SET (attr1=adat1,attr2=adat2)[WHERE feltétel]

UPDATE dolgozo SET fizet=1.1*fizetWHERE fizet<10000;

Page 21: Az SQL nyelv alapjai

Adatmanipulációs nyelv

TörlésTörli a tábla feltételnek megfelelő sorait (feltétel megadása nélkül mindent)DELETE FROM táblanév[WHERE feltétel]

DELETE FROM tanulo WHERE evfolyam=‘’12’’;

Page 22: Az SQL nyelv alapjai

Adatdefiníciós nyelv

Adatdefiníciós műveletek: Adatbázisok létrehozása Adattáblák létrehozása, módosítása,

törlése Lekérdezésekben létrejövő táblák

készítése, törlése Indexállományok kezelése

Page 23: Az SQL nyelv alapjai

Adatdefiníciós nyelv

Adatbázis létrehozása:CREATE DATABASE (adatbázis neve);

CREATE DATABASE termekek;

Page 24: Az SQL nyelv alapjai

Adatdefiníciós nyelv

Adattábla létrehozásaCREATE TABLE táblanév(attribnev1 adattip1 (méret1) [NOT NULL](attribnev2 adattip2 (méret2) [NOT NULL];

CREATE TABLE tanulo(kod INTEGER,nev CHAR(16),evf(CHAR3),oszt(1),pont(INTEGER));

Page 25: Az SQL nyelv alapjai

Adatdefiníciós nyelv

Adattábla törléseDROP TABLE (táblanév);

DROP TABLE tanulo;

Page 26: Az SQL nyelv alapjai

Adatdefiníciós nyelv

Adattábla szerkezetének módosítása Attribútum hozzáadása:

ALTER TABLE táblanévADD (attrib1 adattip1 (méret1)….

ALTER TABLE dolgozo ADD fizetes INTEGER;

Page 27: Az SQL nyelv alapjai

Adatdefiníciós nyelv

Meglévő attribútum törlése

ALTER TABLE (táblanév)DROP (oszlopnév);

ALTER TABLE tanuloDROP szemelyiszam;

Page 28: Az SQL nyelv alapjai

Adatdefiníciós nyelv

Attribútum módosítása:ALTER TABLE táblanévMODIFY (attrib1 újadattipus1(újméret1)…

ALTER TABLE tanuloMODIFY osztondij number(7);

Az attribútumok módosítása sok hibát okozhat, nagy figyelem szükséges!!!!!!!

Page 29: Az SQL nyelv alapjai

Adatdefiníciós nyelv

Indexelés A lekérdezések végrehajtásának ideje

csökkenthető Mezőadatok ismétlődése ellenőrizhető

CREATE [UNIQUE] INDEX indexnévON táblanév (attrib1,attrib2….);

CREATE INDEX ind_tanulonev ON tanulo (nev);

Page 30: Az SQL nyelv alapjai

Adatvezérlő nyelv

Felhaszálói jogosultságok megadása:GRANT jogosultság ON tánlanév TO felhasználó [WITH GRANT OPTION]

Jogosultságok:ALL, SELECT, INSERT, UPDATE(attrib), DELETE, ALTER, INDEX,

WITH GRANT OPTION (a jogok továbbadhatók)

Page 31: Az SQL nyelv alapjai

Adatvezérlő nyelv

Jogosultságok visszavonása

REVOKE jogosultságON táblanév FROM felhasználó

REVOKE delete ON tanuloFROM tanulok