B I T M A N B I v: T 2015.03.01 M A N

Hasonló dokumentumok
Adatbázis-kezelés, információs-rendszerek

8. Gyakorlat SQL. DDL (Data Definition Language) adatdefiníciós nyelv utasításai:

Adatbázis-kezelés. Harmadik előadás

SQL- Utasítások csoportosítása Definíció: DDL: - objektum létrehozás CREATE - objektum megszüntetés DROP - objektum módosítás ALTER

Adatbázis Rendszerek II. 8. Gyakorló környezet

SQL ALAPOK. Bevezetés A MYSQL szintaxisa Táblák, adatok kezelésének alapjai

Adatbázis Rendszerek I. 9. SQL alapok (DDL esettanulmány)

A relációs adatbáziskezelés szabványos nyelve Két fő csoportba sorolhatók az utasításai

Adatbázis Rendszerek I. 10. SQL alapok (DML esettanulmány)

Adatbázis használat I. 5. gyakorlat

Adatbázisok* tulajdonságai

Adatbázisok. 8. gyakorlat. SQL: CREATE TABLE, aktualizálás (INSERT, UPDATE, DELETE), SELECT október október 26. Adatbázisok 1 / 17

Bevezetés: az SQL-be

BEVEZETÉS Az objektum fogalma

SQL. 1.rész. 1.elıadás // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 1

Adattípusok. Max. 2GByte

Adattípusok. Max. 2GByte

Informatikai képzés Információs rendszerek dr. Hajas Csilla (ELTE IK)

B I T M A N B I v: T M A N

Bevezetés az SQL-be. Tankönyv: Ullman-Widom: Adatbázisrendszerek Alapvetés Második, átdolgozott kiadás, Panem, 2009

Adatbázis-kezelés alapjai SQL 1: DDL, DML. v: B IT MAN 92/1B IT MAN

Adatbázisok. 2. gyakorlat SQL november november 12. Adatbázisok 1 / 31

Adatbázisok. 8. gyakorlat. SQL: CREATE TABLE, aktualizálás (INSERT, UPDATE, DELETE) október október 22. Adatbázisok 1 / 14

Tartalomjegyzék. Tartalomjegyzék 1. Az SQL nyelv 1 Az SQL DDL alapjai 2

Adatbázisok I A relációs algebra

Az SQL nyelv Structured Query Language (Struktúrált lekérdező nyelv)

3. Előadás. Az SQL adatbázisnyelv (Tartalom) Az SQL története. Az SQL felépítése. Adattípúsok. SQL utasítások

Adatbázis kezelés Delphiben. SQL lekérdezések

Adatbázisok I. Definíció: DDL: - objektum létrehozás CREATE - objektum megszüntetés DROP - objektum módosítás ALTER

Adatbázis rendszerek SQL nyomkövetés

Adatbázisok-1 előadás Előadó: dr. Hajas Csilla

Adatbázis rendszerek Ea: Esqúel. Structured Query Language

Tranzakciókezelés PL/SQL-ben

SQL parancsok feldolgozása

Megszorítások. AB1_06A_Megszorítások - Adatbázisok-1 EA (Hajas Csilla, ELTE IK) - J.D. Ullman elıadásai alapján

Adatbázis rendszerek Ea: Eskúel. Structured Query Language

5. téma XML DB. Az adatkezelés és XML kapcsolata. Miért fontos az XML használata az adatbázis kezelésben?

Adatbázis-kezelés alapok Adatbázisok című tárgyhoz, ismétlés kapcsán

Adatbázisok elmélete 10. előadás

Adatbázis Rendszerek II. 6. PLSQL Triggerek 32/1B IT MAN

Adatbázis Rendszerek II. 2. Ea: Gyakorló környezet

B I T M A N B I v: T M A N

SQL DDL-1: táblák és megszorítások

Adatbázisok I. Az SQL nyelv

B I T M A N B I v: T M A N

Tábla létrehozása: CREATE TABLE alma( ID INT( 3 ) NOT NULL PRIMARY KEY, Leiras VARCHAR( 100 ) );

Készítette: Szabóné Nacsa Rozália

Adatbázis Rendszerek II. 3. SQL alapok

Célkitűzések Az Oracle10 g felépítésének, használatának alapszíntű megismerése

Adatbázisok I. Jánosi-Rancz Katalin Tünde 327A 1-1

SQL haladó. Külső összekapcsolások, Csoportosítás/Összesítés, Beszúrás/Törlés/Módosítás, Táblák létrehozása/kulcs megszorítások

Adatbázis Rendszerek II. 2. Gyakorló környezet

ADATBÁZIS-KEZELÉS - BEVEZETŐ - Tarcsi Ádám, ade@inf.elte.hu

Debreceni Egyetem Informatikai Kar TANULÓI NYILVÁNTARTÓ SZOFTVER FIREBIRD ADATBÁZIS ALKALMAZÁSÁVAL

Haladó DBMS ismeretek 1

Adatbázis Rendszerek I. 9. SQL alapok (DDL esettanulmány)

Adatbázisok biztonsága

ORACLE. SYS: rendszergazda SCOTT: demonstrációs adatbázis, táblái: EMP (dolgozó), DEPT (osztály) "közönséges" felhasználók

ADATBÁZIS-KEZELÉS FÉLÉVES FELADAT

Adatbázis-kezelés. Második előadás

LOGISZTIKAI ADATBÁZIS RENDSZEREK BEVEZETÉS

Adatbázis rendszerek Gy: MySQL alapok

Adatbázis rendszerek. Molnár Bence. Szerkesztette: Koppányi Zoltán

Beszerzési logisztika támogatása az optimális beszállító kiválasztása révén

Adatbázisok elmélete 9. előadás

Adatbázisok II. Jánosi-Rancz Katalin Tünde 327A

Relációs algebra áttekintés és egy táblára vonatkozó lekérdezések

Adatbázisok elmélete 9. előadás

Vektoros grafikát tároló adatbázisok. Katona Endre Térképi adatbázisok diasorozata alapján

Keskeny Zoltán 2007/08 SQL. Structured Query Language. (gyakorlat az SQL2 szabvány alapján) Keskeny Zoltán tanév

Az indexelés újdonságai Oracle Database 12c R1 és 12c R2

Adatbázisok-I. előadás dr. Hajas Csilla (ELTE IK)

Elemi alkalmazások fejlesztése IV.

IBM WebSphere Adapters 7. változat 5. alváltozat. IBM WebSphere Adapter for Oracle E-Business Suite felhasználói kézikönyv 7. változat 5.

A gyakorlat során MySQL adatbázis szerver és a böngészőben futó phpmyadmin használata javasolt. A gyakorlat során a következőket fogjuk gyakorolni:

A könyv tartalomjegyzéke

Adatbázis fejlesztés és üzemeltetés II. Szabó Bálint

Adatbázisok. 9. gyakorlat SQL: SELECT október október 26. Adatbázisok 1 / 14

STRUCTURED QUERY LANGUAGE(SQL) - ALAPOK

Java és web programozás

Java és web programozás

LOGISZTIKAI ADATBÁZIS RENDSZEREK JOIN, AGGREGÁCIÓ

Adatbázis rendszerek. Molnár Bence. Szerkesztette: Koppányi Zoltán

Adatbázis Rendszerek II. 3. Ea: MySQL alapok

AB1 ZH mintafeladatok. 6. Minősítse az állításokat! I-igaz, H-hamis

6.előadás: Adatbázisok-I. dr. Hajas Csilla (ELTE IK)

Adatbázis Rendszerek II. 3. Ea: MySQL alapok

Adatbázis-lekérdezés. Az SQL nyelv. Makány György

Csomag. Adatbázis-objektum Programozási eszközök gyűjteménye Két részből áll. specifikáció törzs (opcionális)

SQL DDL: Táblák, megszorítások (constraints), triggerek, nézettáblák

Vizuális programozás gyakorlat

Kilencedik témakör: Lazarus-Firebird. Készítette: Dr. Kotsis Domokos


Relációsémák létrehozása SQL nyelvben

Előszó. Bevezetés. Java objektumok leképzése relációs adatbázisokra OJB-vel Viczián István Viczián István


SQL*Plus. Felhasználók: SYS: rendszergazda SCOTT: demonstrációs adatbázis, táblái: EMP (dolgozó), DEPT (osztály) "közönséges" felhasználók

SQL gyakorló feladatok. 6. Adatbázis gyakorlat április 5.

Triggerek. Olyan névvel ellátott adatbázisobjektumok, amelyek eseményorientált feldolgozást tesznek lehetővé

Átírás:

Adatbázis Rendszerek MSc 2. Gy: MySQL Táblák, adatok B I v: T 2015.03.01 M A N 1/41

Témakörök SQL alapok DDL utasítások DML utasítások DQL utasítások DCL utasítások 2/41

Az SQL jellemzése Az SQL a relációs adatbázis-kezelők szabványosított adatmanipulációs és lekérdező nyelve A relációs algebrára épül Nem algoritmikus: Parancsnyelv jellegű, megfogalmazhatjuk, mit akarunk csinálni, de a megoldási algoritmust nem kell megadni. Nincsenek benne ciklusok, feltételes elágazások, stb. Mintaillesztéses, halmazorientált: A táblákat mint a sorok (rekordok) halmazát tekintjük. Az adott utasításban megfogalmazott feltételnek eleget tevő összes sor részt vesz a műveletben 3/41

Az SQL jellemzése 2. Szabványos: Illeszkedik az SQL szabványhoz. A szabványban van egy SQL utasításcsoport, amelyet minden SQL alapú szoftver implementációnak meg kell valósítani, de mindegyik implementáció plusz lehetőséget is nyújt a standard SQLhez képest, felülről kompatibilis a szabvánnyal Fontosabb használati módjai: Önállóan, fejlesztő eszközökben: pl.: SQL*Plus, Beágyazva procedurális programozási nyelvekbe. pl.: C/C++, Pacal Az SQL nem DBMS! 4/41

Az SQL jellemzése 3. Az SQL által lefedett területek: DDL: Data Definition Language adatstruktúra definiáló utasítások adatbázisok, táblák létrehozása, módosítása és törlése DML: Data Manipulation Language adatokon műveletet végző utasítások adatok rögzítése, módosítása, törlése DQL: Data Query Language adat lekérdező utasítás DCL: Data Control Language adatvezérlő, felügyelő utasítások tranzakciók kezelése, jogosultságok menedzselése 5/41

Az SQL használata Tipikus műveleti sorrend: Objektumok, táblák létrehozása, adatok felvitele, adatok lekérdezése, adatok módosítása, szerkezetek módosítása, működési környezet beállítása. Rendszám Típus Szín Kor Rendszám Típus Szín Kor GBC-765 Opel Fehér 6 JED-123 Nissan Ezüst 5 ABC-765 Opel Fehér 6 6/41 AKT-392 Trabant Kék 32

Szintaxis Kisbetű és nagybetű a nyelv alapszavaiban egyenértékű. Utasítások sorfolytonosan írhatók, lezárás pontosvesszővel. Szövegkonstans: 'szöveg' Változó nincs, csak tábla- és oszlopnevekre lehet hivatkozni. Kifejezésben hivatkozás egy tábla adott oszlopára: tábla.oszlop (ha a tábla egyértelmű, akkor elhagyható). Logikai műveletek: AND, OR, NOT Az utasítások szintaxisának leírásánál az elhagyható részleteket szögletes zárójelek között vannak. 7/41

Az SQL utasítások csoportosítása DDL: - objektum létrehozás CREATE - objektum megszüntetés DROP - objektum módosítás ALTER DML: - rekord felvitel INSERT - rekord törlés DELETE - rekord módosítás UPDATE DQL: - lekérdezés SELECT DCL: - védelem GRANT, REVOKE - tranzakció kezelés COMMIT, ROLLBACK 8/41

Témakörök SQL alapok DDL utasítások DML utasítások DQL utasítások DCL utasítások 9/41

DDL Adatstruktúra definiáló utasítások DDL Data Definition Language Adatszerkezetek (elsősorban táblák) létrehozása, módosítása, törlése Egy tábla szerkezete, sémája a táblához tartozó mezőkkel egyértelműen megadható A mezők megadása a mező nevének és a mező adattípusának, valamint az integritási feltételeknek a kijelölésével történik Több tábla is létezhet ugyanazzal a szerkezettel, de a nevük nem lehet egyforma 10/41

Tábla (vagy más objektum) létrehozása CREATE objektumtípus objektumnév paraméterek; CREATE TABLE táblanév ( mezőnév adattípus [integritási feltétel], mezőnév adattípus [integritási feltétel], mezőnév adattípus [integritási feltétel] [,további integritási feltételek] ); CREATE TABLE Autó ( Rendszám char(7) PRIMARY KEY, Típus char(25) NOT NULL, Szín char(15) DEFAULT 'Fehér', Kor number(2) CHECK (Kor > 0) ); 11/41 Rendszám Típus Szín Kor GBC-765 Opel Fehér 6 JED-123 Nissan Ezüst 5 AKT-392 Trabant Kék 32

Adattípusok Alap adattípusok: Char(n) n hosszúságú karaktersorozat, Number(n,m) n jegyű decimális szám, ebből m tizedes jegy; Number(8,2) 123456,12 Date dátum. További típusok (környezetfüggő!): INTEGER egész szám (röviden INT) REAL valós (lebegőpontos) szám Time időpont 12/41

Integritási feltételek megadása Primary key elsődleges kulcs References idegen kulcs Foreign key (mezőlista) References táblanév(mezőlista) idegen kulcs megadása ha a kulcs több mezőből áll Not null nem maradhat üresen a mező, kötelező kitölteni Unique a mező egyedi, nem kerülhet bele két egyforma érték Default alapérték megadása Check értékellenőrzés 13/41

Tábla módosítása ALTER TABLE táblanév [ADD (újelem,..., újelem)] [MODIFY (módosítás,..., módosítás)] [DROP (oszlop,..., oszlop)]; újelem: egy "oszlopnév adattípus [feltétel] csoport módosítás: "oszlopnév adattípus [feltétel] ALTER TABLE Autó ADD (Tulaj REFERENCES Ember); Fontos: a mezők mérete általában csak növelhető, a DROP funkciót pedig általában nem engedik a DBMS-ek. 14/41

Tábla törlése DROP TABLE táblanév; Azok a táblák amelyekre más tábla hivatkozik, nem törölhetők! DROP TABLE Autó; 15/41

Témakörök SQL alapok DDL utasítások DML utasítások DQL utasítások DCL utasítások 16/41

DML adatokon műveletet végző utasítások DML Data Manipulation Language Rekordok (sorok) beszúrása (felvitele) Mezők értékének módosítása Rekordok törlése 17/41

Rekordok beszúrása INSERT INTO táblanév [(oszloplista)] VALUES (értéklista); INSERT INTO Autó VALUES ('AKT-392', 'Trabant', 'Kék', 32); Az oszloplista elhagyható, de ekkor az összes mező értékét meg kell adni, a megfelelő sorrendben! INSERT INTO Autó (Rendszám, Típus, Kor) VALUES ('ASD-602', 'Mazda', 7); Rendszám Típus Szín Kor GBC-765 Opel Fehér 6 JED-123 Nissan Ezüst 5 INSERT INTO Autó VALUES ('ALM-332', 'Renault', Null, 8); INSERT INTO Autó VALUES ('IJK-222', 'Lada', Default, 25); 18/41

Mezők értékének módosítása UPDATE táblanév SET mező = kifejezés,..., mező = kifejezés [ WHERE feltétel ]; A feltételnek eleget tevő mezők módosulnak, Where feltétel nélkül minden mezőt módosít! UPDATE Autó SET Kor=10 WHERE Rendszám='JED-123'; UPDATE Autó SET Szín= 'Barna'; UPDATE Autó SET Kor=10, Szín='Kék' WHERE Rendszám='JED-123'; A mezőben lévő aktuális érték is felhasználható: UPDATE Autó SET Ár = Ár * 1.2 WHERE Ár<1000000; 19/41

Rekordok törlése DELETE FROM táblanév [ WHERE feltétel ]; Where feltétel nélkül minden sor törlődik! DELETE FROM Autó WHERE Kor>15; 20/41

Témakörök SQL alapok DDL utasítások DML utasítások DQL utasítások DCL utasítások 21/41

DQL Adat lekérdező utasítás Most csak ízelítő! DQL Data Query Language Az SQL nyelvben egyetlen parancs, a SELECT parancs szolgál az adatok lekérdezésére Feladata: Egy vagy több adattáblából egy eredménytábla előállítása, amely a képernyőn listázásra kerül, vagy más módon használható fel. SELECT oszloplista FROM táblalista [WHERE feltétel]; 22/41

DQL Példák SELECT * FROM autó; Rendszám Típus Szín Kor GBC-765 Opel Fehér 6 JED-123 Nissan Ezüst 5 AKT-392 Trabant Kék 32 Ár 1200000 1500000 25000 SELECT Rendszám, Típus FROM autó; SELECT * FROM autó WHERE Kor<10; Rendszám Típus GBC-765 Opel JED-123 Nissan AKT-392 Trabant Rendszám Típus Szín Kor GBC-765 Opel Fehér 6 JED-123 Nissan Ezüst 5 Ár 1200000 1500000 23/41

Órai feladat 1. Készítsünk egy autos adatbázist, és nyissuk meg: create database autos; use autos; Készítsünk egy táblát, autók nyilvántartására (neve: auto): auto_id (elsődleges kulcs) (max. 5 számjegy) rendszam (7 karakter) marka (20 karakter) tipus (20 karakter) uzembe helyezve (dátum) klima (igen, nem) 24/41

Órai feladat 1. Írassuk ki az elkészült auto tábla szerkezetét. Vigyünk fel néhány adatsort: insert into auto values (1, 'ABC-321', 'Opel', 'Astra', '2010-03-15', 1); insert into auto values (2, 'BCD-582', 'Opel', 'Corsa', '2007-11-29', null); insert into auto values (3, 'CGT-616', 'Opel', 'Corsa', '2007-11-29'); insert into auto (auto_id, rendszam, marka, tipus, uzhely) values (3, 'CGT-616', 'Opel', 'Corsa', '2007-11-29'); insert into auto values (null, 'CGT-616', 'Opel', 'Corsa', '2007-11-29', 1); 25/41

Órai feladat 1. Vigyünk fel néhány adatsort, közben próbáljuk ki: Teljes adatsor megadása, Klíma mező kimarad, Rendszám mező kimarad, Auto_id mező kimarad. Csak ID-t és rendszámot viszünk fel. 26/41

Órai feladat 1. Javítsuk ki az adatokat: Az 1-es id-jű autóban nincs klíma. update auto set klima=0 where auto_id=1; A BCD-582 rendszámú autót 2008 május 10.-én helyezték üzembe: update auto set uzhely='2008-5-10' where rendszam='bcd-582'; A 2-es id-jű autó egy Renault Megane. update auto set marka='renault', tipus='megane' where auto_id=2; 27/41

Órai feladat 1. Bővítsük ki a táblát egy kategória mezővel (10 karakter). alter table auto add column kategoria char(10); Egészítsük ki a meglévő rekordokat. update auto set kategoria = 'közép' where auto_id = 1; update auto set kategoria = 'alsó' where auto_id = 2; Töröljük a táblát. drop table auto; 28/41

Órai feladat 2. Készítsünk egy táblát, autók nyilvántartására: auto_id (elsődleges kulcs) (max. 5 számjegy) rendszám (7 karakter, nem lehet két egyforma) márka (20 karakter, kötelező megadni) típus (20 karakter, kötelező megadni) klíma (1 karakter, érték: I,N) kategória (10 karakter, érték: alsó, közép, felső) napidíj (max. 8 számjegy, nagyobb, mint 0, kötelező megadni, alapérték 10000) kilométerdíj (max. 8 számjegy, nagyobb, mint 0, kötelező megadni, alapérték 1000) 29/41

Órai feladat 2. create table auto( auto_id numeric(5) primary key, rendszam varchar(7) not null unique, marka varchar(20) not null, tipus varchar(20) not null, klima char(1) not null check (klima in ('I','N')), kategoria varchar(5), napidij numeric(8) default 10000 not null check( napidij>0), kmdij numeric(8) default 1000 not null check (kmdij>0) ); 30/41

Órai feladat 2. Vigyük be az adatokat: insert into auto values (1,'MBC-123', 'Honda','Accord', 'I','közép',12000,1200); insert into auto values (2,'MBC-124', 'Volkswagen','Polo', 'N','kis',7000,800); insert into auto values (3,'MBC-125', 'Nissan','Maxima QX', 'I','felső',22000,2200); insert into auto values (4,'KAS-126', 'Toyota','Yaris', 'N','kis',7000,700); Érdekesség: insert into auto values (5,'LGW-493', 'Mercedes','ML', 'K','felső',default,default); 31/41

Órai feladat 2. Megoldás a klíma problémára: DELIMITER // create trigger klima_teszt after insert on auto for each row begin if (select count(*) from auto where rendszam=new.rendszam and klima in ('I','N') < 1) then delete from auto where rendszam=new.rendszam; end if; end; // DELIMITER ; insert into auto values (6,'LTD-451', 'Toyota','Auris', 'K','kis',7000,700); 32/41

Órai feladat 2. Próbálgassuk az adatfelvitelt, próbáljuk ki: Teljes adatsor megadása alapadatok használatával, Klíma mező kimarad, Rendszám mező kimarad, Rendszám egyforma az előzővel, Auto_id mező kimarad. 33/41

Órai feladat 3. Készítsük el a kölcsönző személyek tábláját: create table kolcsonzo ( k_az numeric(5,0) primary key, nev varchar(50) not null, lakcim varchar(30) not null, telefon varchar(20) ); 34/41

Órai feladat 3. Vigyünk fel adatokat: insert into kolcsonzo values(1,'kis Béla','Valahol u 3.','1234567'); insert into kolcsonzo values(2,'közepes Béla','Akármerre u 3.','1234568'); insert into kolcsonzo values(3,'nagy Béla','Híd alatt tér 1.','1234569'); insert into kolcsonzo values(4,'nagyon Béla','Aluljáró tér 4.','1234560'); Vidd fel saját magad a kolcsonzo táblába! Írasd ki a tábla tartalmát! 35/41

Órai feladat 4. Hozzuk létre a kölcsönzések tábláját is: create table kolcsonzes ( ko_id numeric(10) primary key, auto_id numeric(5) not null, torzsszam numeric(5) not null, ki_dat timestamp not null default current_timestamp, vissza_dat date, ki_km numeric(6) not null, vissza_km numeric(6), foreign key (auto_id) references auto(auto_id), foreign key (torzsszam) references kolcsonzo(k_az) ); 36/41

Órai feladat 4. Vigyünk fel adatokat: insert into kolcsonzes values(11,1,1,adddate(sysdate(),- 100),adddate(sysdate(),-95),150,2000); insert into kolcsonzes values(2,1,1, adddate(sysdate(),-30), adddate(sysdate(),-25),18000,20000); insert into kolcsonzes values(3,1,1, adddate(sysdate(),-6), adddate(sysdate(),-1),22000,24000); sysdate() mai nap adddate(sysdate(), -1) tegnap adddate(sysdate(), +1) holnap 37/41

Órai feladat 4. Vigyünk fel adatokat: insert into kolcsonzes values(4,3,2,'2015-02-23','2015-02- 28',100,300); insert into kolcsonzes values(5,3,2, adddate(sysdate(),-35), adddate(sysdate(),-33),2000,2871); insert into kolcsonzes values(6,3,2,sysdate()- 1,NULL,3122,NULL); insert into kolcsonzes values(7,1,3,sysdate()-70,sysdate()- 65,3800,4225); insert into kolcsonzes values(8,2,3,sysdate()-13,sysdate()- 10,100,1400); insert into kolcsonzes values(9,2,4,sysdate()- 3,NULL,1500,NULL); 38/41

Órai feladat 4. Kölcsönözd ki saját magadnak tegnapelőtti elvitellel a Toyota Aurist, induló km: 1725! Hozd vissza most a Toyotát, km: 2019! Hány km-t mentél az autóval (megtett út)? select vissza_km-ki_km Megtett_út from kolcsonzes; Hány napig volt nálad az autó? select DATEDIFF(vissza_dat, ki_dat) Eltelt_napok from kolcsonzes; 39/41

Felhasznált irodalom Kovács László: PL/SQL, elektronikus jegyzet Barabás Péter: Adatbázis rendszerek 2., elektronikus jegyzet Jeffery D. Ullman, Jennifer Widom: Adatbázisrendszerek Kende Mária, Nagy István: ORACLE példatár Don Burleson: Oracle Tips (www.dba-oracle.com) 40/41

VÉGE V É G E 41/41