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

Adatbázis rendszerek I Az SQL nyelv alapjai Kovács László.

Hasonló előadás


Az előadások a következő témára: "Adatbázis rendszerek I Az SQL nyelv alapjai Kovács László."— Előadás másolata:

1 Adatbázis rendszerek I Az SQL nyelv alapjai Kovács László

2 SQL kialakulása 1974 : System/R mintarendszer (IBM) Új parancsnyelv kidolgozása FIND KIADO FIRST FOR C=„H” DO WHILE STATUS_OK IF L> 100 SET l = l –10 STORE KIADO ENDIF FIND KIADO NEXT ENDDDO meglévő rekord orientált új halmazorientált ? igények: - relációs algebrán alapuljon - egyszerűség - hatékony implementáció

3 SQL kialakulása 1975: SEQUEL Structured English Query Language - magas szintű műveletek - egymásba ágyazható műveletek - természetes nyelvhez közelít FIND KIADO FIRST FOR C=„H” DO WHILE STATUS_OK IF L> 100 SET l = l –10 STORE KIADO ENDIF FIND KIADO NEXT ENDDDO UPDATE KIADO SET L = L-10 WHERE C = „H” aktualizáld a KIADO-t, legyen L = L-10, ahol C = „H” D. Chamberlin

4 SQL kialakulása 1986: ANSI SQL 1987: ISO SQL 1989: ANSI : SQL : SQL : SQL : SEQUEL 1977: SEQUEL/2 (SQL) 1979: system/38 SQL 1979: Oracle SQL 1983: DB2 SQL Ingres Oracle IBM DB2 Sybase Informix MS SQLServer PostgresSQL mySQL Access termékek szabványok igények aktív elemek, OO, OLAP,.. Több-résztvevős folyamat a fejlődése

5 SQL elemei SQL Műveletek típusai: - adatdefiniáló (DDL) struktúra létrehozás (CREATE) struktúra módosítás (ALTER) struktúra megszüntetés (DROP) - adatkezelő (DML) adat felvitel (INSERT) adat módosítás (UPDATE) adat törlés (DELETE) - lekérdező (DQL) adat kiolvasása (SELECT) - vezérlő (DCL)

6 DDL utasítások A táblák struktúrájának kezelése Kezdetben vala az üresség … És először létrehozánk egy táblát … Milyen mezői legyenek? Minek nevezzem el? Milyen megkötéseket teszel? Jó, hozz létre egy KÖNYV nevű táblát, melynek van egy cím nevű 20 hosszú szöveges, és egy ár nevű numerikus mezője! CREATE TABLE KÖNYV (cím CHAR(20), ár INTEGER); létrehozás: CREATE TABLE név paraméterek; tábla megszüntetés: DROP TABLE név; szerkezet módosítás: ALTER TABLE név paraméterek;

7 DML utasítások A táblák adatinak kezelése Az üres tábla minek lészen vala ? Töltsd meg adatokkal, ami jó lesz neki … Mely táblába helyezzük el? Milyen adatok kerülnek át az egyes mezőkbe? INSERT INTO KÖNYV (‘Lepkefogó’, 2340); rekord felvitele: INSERT INTO név (értékek); rekord törlése: DELETE FROM név WHERE feltétel; rekordérték módosítása: UPDATE név SET értékadás WHERE feltétel ;

8 DQL utasítások A táblák adatinak lekérdezése Az feltöltött tábla minek lészen vala ? Meríts az adatokból, hagy sokasodjanak … Mely táblákból vesszük az adatokat? Mely rekordokat vegyük figyelembe? Milyen számításokat végezzek az adatokon? SELECT * FROM KÖNYV WHERE ár > 3300; rekordok lekérdezése: SELECT mezőlista FROM táblalista WHERE feltétel GROUP BY csoportképzés … ORDER BY rendezés

9 SQL felületek Mily módon adhatók át a DBMS-nek az SQL utasítások? DBMS parancsértelmező DB segédprogram alkalmazói program ESQL CLI / ODBC JDBC / ADO 4GL

10 kép Rippl-Rónai József ( ): Kalitkás nő (1892)

11 DDL utasítások Objektum létrehozása: CREATE objektumtípus azonosító paraméterek; CREATE TABLE tnév (mnev1 tipus1 intfelt1, …,intfelt) … ; CHAR(n) NUMBER(n,m) DATE PRIMARY KEY NOT NULL UNIQUE CHECK felt REFERENCING tabla PRIMARY KEY(m1,m2) FOREIGN KEY(m1,m2) REFERENCING tabla CHECK felt CREATE TABLE AUTO (RSZ CHAR(6) PRIMARY KEY, AR NUMBER(9) NOT NULL, IDO DATE); A műveletek nem tranzakció hatáskörben futnak le!

12 DDL utasítások Objektum megszüntetése: DROP objektumtípus azonosító paraméterek; DROP TABLE tnév ; Objektum séma módosítás: ALTER objektumtípus azonosító paraméterek; ALTER TABLE tnév ADD | MODIFY (mnev tip intfelt | intfelt); DROP TABLE AUTO; ALTER TABLE AUTO ADD (TULAJ REFERENCING EMBER); A műveletek nem tranzakció hatáskörben futnak le!

13 Rekord felvitele: INSERT INTO tabla VALUES (ert1, ert2, …,ertn); INSERT INTO tabla (mezo1,..) VALUES (ert1,..); INSERT INTO tabla VALUES (mezo=ertek,…); INSERT INTO tabla SELECT …; Fontos a mezősorrend Minden szükséges mező kapjon értéket INSERT INTO AUTO VALUES (‘bju564’,234,’FIAT’); DML utasítások A műveletek tranzakció hatáskörben futnak le! INSERT INTO AUTO (rsz, tipus) VALUES (‘bju564’,’FIAT’); INSERT INTO AUTO VALUES (RSZ=‘bju564’,...);

14 Rekord törlése: DELETE FROM tabla WHERE feltétel; A feltételnek eleget tevő rekordok törlődnek Ha elmarad a WHERE tag, minden rekord törlődik A feltétel rész részletesen a SELECT-nél jön DELETE FROM AUTO WHERE AR< ; DML utasítások A műveletek tranzakció hatáskörben futnak le! DELETE FROM AUTO; DELETE FROM AUTO WHERE (SELECT … ) ;

15 DML utasítások Rekord módosítása: UPDATE tabla SET mezo= érték,... WHERE feltétel; A feltételnek eleget tevő rekordok módosulnak Ha elmarad a WHERE tag, minden rekord módosul UPDATE AUTO SET AR = AR * 1.2 WHERE AR< ; A műveletek tranzakció hatáskörben futnak le! UPDATE DOLGOZO SET KOR = KOR + 1, FIZ = 10000;

16 Dátumok felvitele konverziós függvénnyel: INSERT INTO AUTO(DATUM,..) VALUES( TO_DATE(‘ ’,’YYYY.MM.DD’),…); DML utasítások Speciális értékek kezelése Üres, nem ismert érték jelölése: NULL INSERT INTO AUTO VALUES(12,’ALMA’, NULL,..); INSERT INTO AUTO(DATUM,..) VALUES( CTOD(‘ ’),…); DEFAULT érték szerepe A ” és ‘ határolók eltérő szereppel bírnak INSERT INTO AUTO(”SZUL. HELY”,..) VALUES(‘OZD’,..);

17 A lekérdezés alapjai: SELECT m_kif1,… FROM t_kif WHERE feltétel GROUP BY cskif HAVING feltétel UNION | INTERSECT | MINUS SELECT … ORDER BY rkif; DQL utasítások A relációs algebrán alapszik Tartalmaz nem relációs elemeket is (pl. ORDER BY) Állandóan bővül, az SQL központi eleme SELECT nev FROM dolgozo;

18 A projekció megadása  mlista (r) SELECT RSZ, TIPUS FROM AUTO; SELECT mlista FROM tábla; Az mlista helyén * áll, ha minden mező kell DQL utasítások SELECT * FROM AUTO;

19 DQL utasítások  felt (r) A szelekció megadása SELECT mlsita FROM tábla WHERE feltétel; SELECT * FROM AUTO WHERE SZIN = ‘PIROS’ OR TIPUS = ‘MAZDA’;

20 SELECT kif név,... FROM …;  mlista (r) A kiterjesztés megadása SELECT AR/100 UJAR FROM AUTO; A mezőkhöz új nevet is rendelhetünk Az előállító kifejezés DQL utasítások SELECT SAL FIZETES, AGE KOR FROM EMP; A SELECT eredmény táblája a fenti esetekben a képernyőre kerül. Így ez az alak csak a parancsfelületen használható.

21 Oracle PL/SQL Gyakorlati eszköz: Oracle RDBMS Felület: interaktív SQL: sqlplus (Sun gépek, 105-ös lab.) WEB-es SQL felület: ISqlplus regisztáció: https://www-db.iit.uni-miskolc.hu/dbreg/ sqlplus: sun> export ORACLE_HOME=/opt/OraHome1 sun> export PATH=${PATH}:${ORACLE_HOME}/bin sun> sqlplus isqlplus:

22 Rippl-Rónai József: Zorka(1916) kép

23 A relációs adatmodell Egyedi elemek - összetett kulcsok használata - LOCAL | GLOBAL TEMPORARY TABLE - CONSTRAINT - DEFFERABLE - INITIALLY DEFERRED - INITIALLY IMMEDIATE - SET CONSTRAINTS IMMEDIATE | DEFFERED - érték megadás SELECT-tel - A SELECT használata a CHECK-ben - REFERENCES tabla(mezo) - REFERENCES t(m) ON DELETE | UPDATE RESTRICT | SET NULL | CASCADE | NO ACTION

24 Rippl-Rónai József: Vörössapkás önarckép (1924) kép


Letölteni ppt "Adatbázis rendszerek I Az SQL nyelv alapjai Kovács László."

Hasonló előadás


Google Hirdetések