Az SQL nyelv alapjai Az SQL nyelv jellemzi

  • Slides: 31
Download presentation
Az SQL nyelv alapjai

Az SQL nyelv alapjai

Az SQL nyelv jellemzői o Az SQL a Structured Query Language (Struktúrált Lekérdező Nyelv)

Az SQL nyelv jellemzői o 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. o Nem algoritmikus nyelv, nem tartalmaz elágazást, ciklust, nem alkalmas rekurzív feladatok végrehajtására. o Halmazorientált nyelv, melynek műveletei egy adatbázis különböző objektumain hajthatók végre.

Az SQL nyelv jellemzői o Az SQL egy beépülő nyelv, mely más programozási nyelvekkel

Az SQL nyelv jellemzői o 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) o Az SQL nyelvben minden parancs egy kulcsszóval kezdődik, és pontosvesszővel fejeződik be. o A parancsok egymásba ágyazhatók.

Az SQL nyelv alkotóelemei o Adatlekérdező nyelv az adatbázisból lekérdezés útján történő információnyerés o

Az SQL nyelv alkotóelemei o Adatlekérdező nyelv az adatbázisból lekérdezés útján történő információnyerés o Adatdefiníciós nyelv adatbázisok és adattáblák létrehozása, törlése, szerkesztése, módosítása o Adatmanipulációs nyelv az adattáblák karbantartása o Adatvezérlő nyelv jogosultságok és tranzakciók kezelése

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

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)

Lekérdező utasítások A lekérdező utasítás teljes felépítése: SELECT [DISTINCT|ALL] *|attr 1, attr 2, …

Lekérdező utasítások A lekérdező utasítás teljes felépítése: SELECT [DISTINCT|ALL] *|attr 1, attr 2, … FROM tábla 1, [INNER JOIN|LEFT JOIN|RIGHT JOIN tábla 3 ON feltétel] [WHERE feltétel] [GROUP BY oszlopnév 1, oszlopnév 2, …] [HAVIG feltétel] [ORDER BY oszlopnév 1 | oszlopszám 1, …. . ][ASC|DESC]

Lekérdező utasítások o Egy tábla összes rekordjának megjelenítése: SELECT * FROM táblanév; (A *

Lekérdező utasítások o 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) o Azonos rekordok ismétlésének kihagyása: SELECT DISTINCT* FROM táblanév;

Lekérdező utasítások o Projekció (vetítés) Az eredmény táblában csak a felsorolt mezők adatait jeleníti

Lekérdező utasítások o Projekció (vetítés) Az eredmény táblában csak a felsorolt mezők adatait jeleníti meg. o SELECT [DISTINCT] attrib 1, attrib 2 FROM táblanév; o SELECT DISTINCT nev, evfolyam, osztaly FROM tanulo;

Lekérdező utasítások o Kiterjesztés A lekérdezésben szereplő mezők felhasználásával újabb mezőket hozunk létre. o

Lekérdező utasítások o Kiterjesztés A lekérdezésben szereplő mezők felhasználásával újabb mezőket hozunk létre. o SELECT nev, pontszam 1+pontszam 2 FROM tanulo;

Lekérdező utasítások o Szelekció (Adott feltételnek megfelelő adatok megjelenítése, melyet a WHERE záradék után

Lekérdező utasítások o Szelekció (Adott feltételnek megfelelő adatok megjelenítése, melyet a WHERE záradék után adunk meg) o SELECT atributum 1, attributum 2, …. FROM táblanév WHERE feltétel; o SELECT * FROM tanulo WHERE (evfolyam=’’ 12’’) AND (osztaly=‘’B’’)

Lekérdező utasítások Összehasonlító operátorok: 1. BETWEEN x AND y A BETWEEN kifejezésben keresett értéknek

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%’’;

Lekérdező utasítások o Descartes-szorzat A relációk közötti szorzás műveletet valósítja meg, tehát a lehetséges

Lekérdező utasítások o Descartes-szorzat A 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ő. o SELECT tablanev 1. mezők, tablanev 2. mezők FROM tablanev 1, tablanev 2; o SELECT tanulo. *, tantargy. * FROM tanulo, tantargy;

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

Lekérdező utasítások o Összekapcsolás: Több adattáblán elhelyezkedő információk egy táblára gyűjtésére használható. o Belső összekapcsolás: SELECT tanulo. *, tantargy. * FROM tanulo INNER JOIN tantargy ON ( tanulo. tantargykod = tantargykod); (csak mindkét táblában szereplő mezőadatok esetén) o Külső összekapcsolás: SELECT tanulo. *, tantargy. * FROM tanulo LEFT (RIGHT) JOIN tantargy ON ( tanulo. tantargykod = tantargykod); o (a tanuló tábla összes rekordja akkor is, ha nincs megfelelő a tantargy táblában)

Lekérdező utasítások o Csoportosítás A rekordokat egy adott mező értékei szerint csoportokra bontjuk. (Legtöbbször

Lekérdező utasítások o Csoportosítás A 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útum 1, attribútum 2 [SUM, MAX, MIN, COUNT, AVG](attribútum 3) FROM táblanév GROUP BY attrib 4, attrib 5; SELECT evfolyam, osztaly, COUNT(tanulokod) AS‘’letszam’’ FROM tanulo GROUP BY evfolyam, osztaly;

Lekérdező utasítások A csoportosítás esetén használható függvények: o COUNT megadja a tábla sorainak számát

Lekérdező utasítások A csoportosítás esetén használható függvények: o COUNT megadja a tábla sorainak számát o SUM megadja a paraméterben szereplő oszlop adatainak összegét o AVG megadja a paraméterben szereplő oszlop adatainak átlagát o MIN megadja a paraméterben szereplő numerikus adatok közül a legkisebbet o MAX megadja a paraméterben szereplő numerikus adatok közül a legnagyobbat

Lekérdező utasítások n Lekérdezés csoportosítással létrejött táblában (csoportfeltételek megadása) WHERE helyett HAVING SELECT attribútum

Lekérdező utasítások n Lekérdezés csoportosítással létrejött táblában (csoportfeltételek megadása) WHERE helyett HAVING SELECT attribútum 1, attribútum 2 [SUM, MAX, MIN, COUNT, AVG](attribútum 3) FROM táblanév GROUP BY attrib 4, attrib 5; HAVING csoportfeltétel SELECT evfolyam, osztaly, COUNT(tanulokod) AS‘’letszam’’ FROM tanulo GROUP BY evfolyam, osztaly; HAVING COUNT(tanulokod)>20;

Lekérdező utasítások o Rendezés A lekérdezés eredmény relációjának rendezésére ORDER BY záradékkal SELECT attribútum

Lekérdező utasítások o Rendezés A lekérdezés eredmény relációjának rendezésére ORDER BY záradékkal SELECT attribútum 1, attribútum 2 FROM reláció ORDER BY attribútum 1[ASC, DESC], attribútum 2[ASC, DESC]; SELECT * FROM tanulo ORDER BY nev desc;

Adattípusok Az adattípusok (rendszerenként eltérők lehetnek): o CHAR(n) n hosszúságú karaktersorozat o VARCHAR(n) legfeljebb

Adattípusok Az adattípusok (rendszerenként eltérők lehetnek): o CHAR(n) n hosszúságú karaktersorozat o VARCHAR(n) legfeljebb n hosszúságú karaktersorozat o INTEGER egész szám (röviden INT) o REAL valós (lebegőpontos) szám, másnéven FLOAT o DECIMAL(n[, d]) n jegyű decimális szám, ebből d tizedesjegy o DATE dátum (év, hó, nap) o TIME idő (óra, perc, másodperc) o 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.

Adatmanipulációs nyelv Az adattáblák karbantartásának műveletei: o Új rekord beszúrása a táblába INSERT INTO

Adatmanipulációs nyelv Az adattáblák karbantartásának műveletei: o Új rekord beszúrása a táblába INSERT INTO táblanév(attribútumlista) VALUES(értéklista INSERT INTO tanulo (kod, nev, evf, oszt) VALUES(009, ”Nagy János”, ” 12”, ”b”); Használhatjuk a NULL értéket Az új rekord az utolsó után tárolódik

Adatmanipulációs nyelv o Módosítás A tábla meghatározott mezőinek módosítása: UPDATE táblanév SET (attr 1=adat

Adatmanipulációs nyelv o Módosítás A tábla meghatározott mezőinek módosítása: UPDATE táblanév SET (attr 1=adat 1, attr 2=adat 2) [WHERE feltétel] UPDATE dolgozo SET fizet=1. 1*fizet WHERE fizet<10000;

Adatmanipulációs nyelv o Törlés Törli a tábla feltételnek megfelelő sorait (feltétel megadása nélkül mindent)

Adatmanipulációs nyelv o Törlés Tö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’’;

Adatdefiníciós nyelv Adatdefiníciós műveletek: o Adatbázisok létrehozása o Adattáblák létrehozása, módosítása, törlése o Lekérdezésekben

Adatdefiníciós nyelv Adatdefiníciós műveletek: o Adatbázisok létrehozása o Adattáblák létrehozása, módosítása, törlése o Lekérdezésekben létrejövő táblák készítése, törlése o Indexállományok kezelése

Adatdefiníciós nyelv o Adatbázis létrehozása: CREATE DATABASE (adatbázis neve); CREATE DATABASE termekek;

Adatdefiníciós nyelv o Adatbázis létrehozása: CREATE DATABASE (adatbázis neve); CREATE DATABASE termekek;

Adatdefiníciós nyelv o Adattábla létrehozása CREATE TABLE táblanév (attribnev 1 adattip 1 (méret 1)

Adatdefiníciós nyelv o Adattábla létrehozása CREATE TABLE táblanév (attribnev 1 adattip 1 (méret 1) [NOT NULL] (attribnev 2 adattip 2 (méret 2) [NOT NULL]; CREATE TABLE tanulo (kod INTEGER, nev CHAR(16), evf(CHAR 3), oszt(1), pont(INTEGER));

Adatdefiníciós nyelv o Adattábla törlése DROP TABLE (táblanév); DROP TABLE tanulo;

Adatdefiníciós nyelv o Adattábla törlése DROP TABLE (táblanév); DROP TABLE tanulo;

Adatdefiníciós nyelv Adattábla szerkezetének módosítása o Attribútum hozzáadása: ALTER TABLE táblanév ADD (attrib 1

Adatdefiníciós nyelv Adattábla szerkezetének módosítása o Attribútum hozzáadása: ALTER TABLE táblanév ADD (attrib 1 adattip 1 (méret 1)…. ALTER TABLE dolgozo ADD fizetes INTEGER;

Adatdefiníciós nyelv o Meglévő attribútum törlése ALTER TABLE (táblanév) DROP (oszlopnév); ALTER TABLE tanulo

Adatdefiníciós nyelv o Meglévő attribútum törlése ALTER TABLE (táblanév) DROP (oszlopnév); ALTER TABLE tanulo DROP szemelyiszam;

Adatdefiníciós nyelv o Attribútum módosítása: ALTER TABLE táblanév MODIFY (attrib 1 újadattipus 1(újméret 1)…

Adatdefiníciós nyelv o Attribútum módosítása: ALTER TABLE táblanév MODIFY (attrib 1 újadattipus 1(újméret 1)… ALTER TABLE tanulo MODIFY osztondij number(7); Az attribútumok módosítása sok hibát okozhat, nagy figyelem szükséges!!!!!!!

Adatdefiníciós nyelv o Indexelés n A lekérdezések végrehajtásának ideje csökkenthető n Mezőadatok ismétlődése ellenőrizhető

Adatdefiníciós nyelv o Indexelés n A lekérdezések végrehajtásának ideje csökkenthető n Mezőadatok ismétlődése ellenőrizhető CREATE [UNIQUE] INDEX indexnév ON táblanév (attrib 1, attrib 2…. ); CREATE INDEX ind_tanulonev ON tanulo (nev);

Adatvezérlő nyelv o Felhaszálói jogosultságok megadása: GRANT jogosultság ON tánlanév TO felhasználó [WITH GRANT

Adatvezérlő nyelv o 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)

Adatvezérlő nyelv o Jogosultságok visszavonása REVOKE jogosultság ON táblanév FROM felhasználó REVOKE delete ON

Adatvezérlő nyelv o Jogosultságok visszavonása REVOKE jogosultság ON táblanév FROM felhasználó REVOKE delete ON tanulo FROM tanulok