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

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

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

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

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

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

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

Adattípusok. Max. 2GByte

Adattípusok. Max. 2GByte

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ázisok I. Definíció: DDL: - objektum létrehozás CREATE - objektum megszüntetés DROP - objektum módosítás ALTER

Bevezetés: az SQL-be

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

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

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

Adatbázisok* tulajdonságai

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

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

SQL. Táblák összekapcsolása lekérdezéskor Aliasok Allekérdezések Nézettáblák

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

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

Adatbázis rendszerek SQL nyomkövetés

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

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

STRUCTURED QUERY LANGUAGE(SQL) - ALAPOK

ADATBÁZISOK gyakorlat: SQL 2. rész SELECT

BEVEZETÉS Az objektum fogalma

SQL parancsok feldolgozása

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

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

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

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

SQL PÉLDATÁR. készült a PTE TTK Iskolai informatika III. kurzus teljesítésére

Gyakorlás: Hozzunk létre egy Alkalmazottak táblát AZO szám, Részleg szöveg, Munkakör szöveg és BelépésDátuma dátum típussal.

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

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

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

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

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

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

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

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

Elemi alkalmazások fejlesztése IV.

Webfejlesztés 4. alkalom

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

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

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

Az SQL adatbázisnyelv: DML

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

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

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

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

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

Az SQL nyelv. SQL (Structured Query Language = Strukturált Lekérdező Nyelv).

Adatbáziskezelő-szerver. Relációs adatbázis-kezelők SQL. Házi feladat. Relációs adatszerkezet

A relációs algebra egy speciális algebra, amely néhány egyszerű, de hathatós. operandusok. Egy reláció megadható a nevével vagy közvetlenül, sorainak

Adatbázis tartalmának módosítá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 I. 11. előadás. Kulcsok az SQL ben. Hivatkozásépségi megszorítások és idegen kulcsok.

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

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

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ázisok tavaszi félév Vizsgatételsor

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

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

Adatbázis rendszerek 2. előadás. Relációs algebra

SQL jogosultság-kezelés. Privilégiumok Grant és Revoke Grant Diagrammok

Adatbázisok I A relációs algebra

Adatbáziskezelı-szerver SQL. Relációs adatbázis-kezelık. Relációs adatszerkezet. Házi feladat

ADATBÁZIS RENDSZEREK. Adatbázisok története, alapfogalmak, adatmodellek. Krausz Nikol, Medve András, Molnár Bence

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

Adatbázis használat I. 5. gyakorlat

SQL DDL-2 (aktív elemek) triggerek

Adatbázisok I. Az SQL nyelv

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

LOGISZTIKAI ADATBÁZIS RENDSZEREK JOIN, AGGREGÁCIÓ

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

Gazdasági folyamatok térbeli elemzése. 5. elıadás

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

BEVEZETÉS Az objektum fogalma

INFORMATIKA ÁGAZATI ALKALMAZÁSAI. Az Agrármérnöki MSc szak tananyagfejlesztése TÁMOP /1/A

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

Hallgató i Ú tmutató. Beadandó anyag követelményei

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:

LOGISZTIKAI ADATBÁZIS RENDSZEREK BEVEZETÉS

Dr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 4.ELŐADÁS. Adatbázis alapú alkalmazások készítése PHP-ben

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

Nézetek és indexek. AB1_06C_Nézetek_Indexek - Adatbázisok-1 EA (Hajas Csilla, ELTE IK) - J.D. Ullman elıadásai alapján

BGF. 4. Mi tartozik az adatmodellek szerkezeti elemei

Java és web programozás

Adatbázisok (relációs, objektum relációs, NoSQL) Adatbáziskezelő rendszerek Adatbázisok felépítése Adatbázisok tervezése

MySQL. Elektronikus jegyzet Széchenyi István Egyetem Távközlési tanszék

LEKÉRDEZÉSEK SQL-BEN. A relációs algebra A SELECT utasítás Összesítés és csoportosítás Speciális feltételek

Programozás. Adatbázis-kezelés (alapok) Fodor Attila

Indexek és SQL hangolás

30 MB INFORMATIKAI PROJEKTELLENŐR ADATBÁZISOK MEGVALÓSÍTÁSA (ADATBÁZISOK, ADATBÁZISKEZELŐK, ADATBÁZISOK FELÉPÍTÉSE, ADATBÁZISOK TERVEZÉSE)

ABR ( Adatbázisrendszerek) 2. Előadás : Műveletek a relációs modellben

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

Funkcionális függések lekérdezések feldolgozása, kifejezésfák

1.óra. Bevezetés. Adatmodellezés, elméleti háttér

Java és web programozás

Átírás:

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

A mai órán

A mai órán Házi tapasztalatok SQL (és ami mögötte van)

Házi tapasztalatok

Házi tapasztalatok Házik besorolása megtörtént Oktatói visszajelzések a feladatok alatt Kategóriák nem jegy, inkább a jövőbeni munka Kevés egyed Lekérdezések átgondolása Kész feladat Javítani lehet bármikor Sorsolás legkésőbb kedd este

Házi tapasztalatok Nyilvántartás és nem tervezési feladat Geometriai elemzésekre nincs lehetőség accessben Hibalista Nyers adatok fogalma vs. teljesen feldolgozott adatok Ékezetes fájlok Rar tömörítés helyett Zip használata ajánlott 4 egyed, lekérdezések, adatmennyiség Esélyegyenlőség miatt fontos

SQL

Történet 1970-es évek eleje IBM SEQUEL (Structured English QUery Languge) Structured/Standard Query Language 1986-tól ANSI, 1987-től ISO szabvány SQL2 ('92), SQL3 ('99),... folyamatos fejlesztés (SQL2011) szabvány, melyet többé-kevésbé a legtöbb relációs adatbázis-kezelő támogat Relational Software, Inc. Oracle Corp.

Alapok Magja ekvivalens a relációs algebrával, de annál bővebb összesítő műveletek (pl. SUM, AVG) adatbázis-módosítások Nem procedurális nyelv (deklaratív), tehát az alapvető kérdés az, hogy mit kell csinálni, és nem az, hogy hogyan. Adatleíró (DDL) -, Adatmódosító (DML) -, Adatelérést vezérlő (DCL) -, Lekérdező (QL) nyelv

SQL alapok adatbázis létrehozása CREATE DATABASE adatbazis; jogosultságok felhasználó elérés helye kódolás (UTF8, LATIN2 [ISO-8859-2]) sablonok (pl. téradatok tárolása esetén) használat explicit definíció kapcsolódáskor USE adatbazis; Használt karakterek: [_a-z0-9]

Áttérés relációs algebráról

Emlékeztető Relációs adatbázis séma Relációs séma: Hallgató(Neptun: Szöveg, Név: Szöveg, Születési_év: Szám) Relációs adatbázis séma: Hallgató Neptun: Szöveg Név: Szöveg Születési_év: Szám...

Tábla létrehozása CREATE TABLE hallgato ( neptun VARCHAR(6) [...], nev VARCHAR(50), szuletesi_ev INTEGER, atlag DOUBLE PRECISION, PRIMARY KEY (neptun) );

Hogyan (ne) használjuk a dokumentációt? PostgreSQL MySQL Oracle W3Schools

Tábla létrehozása CREATE TABLE táblanév : DEFAULT alapértelmezett érték NULL /NOT NULL UNIQUE (!= PRIMARY KEY!) AUTO INCREMENT/Sequence/AutoNumber

Tábla módosítása ALTER TABLE táblanév ADD oszlopnév típus; ALTER TABLE táblanév DROP oszlopnév; DROP hallgato; TRUNCATE táblanév; ALTER TABLE hallgato RENAME TO bme_hallgatok; DROP táblanév; ALTER TABLE hallgato DROP nev; ALTER TABLE táblanév RENAME TO új_táblanév; ALTER TABLE hallgato ADD szuletesi_hely VARCHAR(50); TRUNCATE hallgato; Változtatások esetén figyelni kapcsolatok frissítésére is! kell a többi táblával való

Adatfeltöltés Beszúrás INSERT INTO táblanév [(attribútum1, attribútum2, )] VALUES (érték1, érték2, ); INSERT INTO hallgato (neptun, nev, szuletesi_ev, atlag) VALUES ('ABCDEF', 'Kiss Péter', 1993, 4.5); LOAD DATA COPY

Adatmódosítás Módosítás UPDATE táblanév WHERE feltétel; SET attribútum = érték UPDATE hallgato SET atlag = 4.6 WHERE nev = 'Nagy Sándor'; Törlés DELETE FROM táblanév WHERE attribútum = érték; DELETE hallgato WHERE nev = 'Kovács József';

Vetítés SQL-ben Vetítés (projekció) [π, Π]: a reláció bizonyos attribútumait megtartjuk és a többit törölve új relációt hozunk létre. SELECT nev, szuletesi_ev FROM hallgato; neptun SELECT nev szuletesi_ev * FROM hallgato; neptun nev szuletesi_ev

Szelekció SQL-ben Lekérdezés SELECT Péter'; eredmény sorainak szűrése * FROM hallgato WHERE nev='kis Több feltétel is lehet, logikai kapcsolat közöttük Módosítási jelentőségű parancsoknál különös

Egyszerű lekérdezések SELECT attribútum(ok) FROM táblá(k) WHERE tulajdonság(ok); SELECT nev FROM hallgatok WHERE nev = 'Kiss Péter'; attribútumok, táblák elválasztása vesszővel tulajdonságok összefűzése logikai operátorral: AND, OR operátorok: =, <>, >, <, =>, <=, LIKE, BETWEEN, IN, NOT ismétlődések megszüntetése (DISTINCT) aliasok (AS) - különleges karakterek: *, _, % (Access-ben: *,?, #) escape karakterek Idézőjelek: ', " kis- és nagybetűk

Nézettáblák CREATE TABLE: fizikailag létrejön (tárolásra kerül) CREATE VIEW nézettábla AS lekérdezés; CREATE VIEW hallgato_a AS SELECT * FROM hallgato WHERE nev LIKE 'A%'; nem jön létre (csak a definíció tárolódik), nem foglal tárkapacitást lekérdezhető módosítható? (materializált view) DROP VIEW nézettábla;

Sorba rendezés SELECT * FROM hallgato WHERE nev LIKE 'Kovács%' ORDER BY szuletesi_hely ASC/DESC; neptun_kod nev szuletesi_hely neptun_kod nev szuletesi_hely Abádszalók Zalaegerszeg Abádszalók Zalaegerszeg Almásfüzitő Záhony Budapest Záhony

Sorok számának korlátozása SELECT * FROM tabla LIMIT sorok_szama kezdo_sor; SELECT nev, jegy FROM hallgatok ORDER BY jegy LIMIT 1; Ha egy sort keresünk, érdemes ezt beleírni, mert gyorsítja a lekérdezést, hiszen nem keres tovább. Access: SELECT TOP 1 FROM hallgatok ORDER BY jegy;

Csoportosítás Valamilyen attribútum értéken egyező rekordok csoportosítása, együttes kezelése SELECT AVG(jegy) FROM hallgato WHERE targy = 'Adatbázisok' GROUP BY szuletesi_ido; Feltétel megadása a csoport tulajdonságaira SELECT AVG(jegy) FROM hallgato WHERE targy = 'Adatbázisok' GROUP BY szuletesi_ido HAVING AVG(jegy)>=3;

Függvények használata SELECT COUNT(*) FROM hallgato; SELECT AVG(jegy) FROM hallgato; SELECT MIN(jegy) FROM hallgato; SELECT MAX(jegy) FROM hallgato; SELECT SUM(jegy)/COUNT(*) FROM hallgato jegy IS NOT NULL; SELECT DISTINCT szuletesi_hely FROM hallgato;

Szöveg függvények SELECT vnev " " knev FROM hallgatok; SELECT * FROM hallgatok WHERE vnev " " knev LIKE "Nagy Béla"; MySQL (MariaDB): CONCAT() PgSQL: Access: & SELECT * FROM tantargyak WHERE SUBSTRING(kod FROM 6 TO 7)="FT";

Szabadszavas kersés mezo LIKE 'szoveg' SELECT 'Kiss%'; Joker * FROM hallgatok WHERE nev LIKE karakterek: %: tetszőleges karakter karakter; _: egy tetszőleges karakter 0,1,sok

Bonyolultabb lekérdezések SELECT nev FROM hallgato WHERE (nev LIKE '%Péter' OR nev LIKE '%Sándor') AND nev LIKE 'Nagy%'; SELECT nev FROM hallgato WHERE nev LIKE 'Kov_cs%'; SELECT eloadas_hossza*60 AS perc FROM targyak; SELECT nev FROM hallgatok WHERE targy = 'Adatbázisok' AND NOT bukott;

Metszet/Unió Általános formula: (SELECT neptun_kod FROM hallgatok WHERE nev LIKE 'Nagy%') INTERSECT/UNION (SELECT neptun_kod FROM hallgatok WHERE szuletesi_hely = 'Budapest'); szintaktika attribútumok száma

Subselect film(cim, ev, hossz, studionev, rendezoid) rendezo(id, nev, cim, bevetel) SELECT nev FROM rendezo WHERE ID = (SELECT rendezoid FROM Film WHERE cim = 'Gyűrűk Ura'); SELECT * FROM film WHERE rendezoid IN (SELECT ID FROM Rendezo WHERE nev LIKE 'P_ter%');

Több táblát érintő lekérdezések film(cim, ev, hossz, studionev, rendezoid) rendezo(id, SELECT SELECT nev, cim, bevetel) cim, nev FROM rendezo, film; (?) cim, nev FROM rendezo, WHERE film.rendezoid = rendezo.id; film

Kapcsolatok természetes összekapcsolás az összekapcsolási feltétel az azonos nevű attribútumok egyenlőségéből képződik nincs más feltétel az egyenlő attribútumok közül csak egyet tartalmaz az eredmény théta-összekapcsolás (csak = operátor)

Kapcsolatok oktatok oktato tanszekkod Koppányi Zoltán FMT Lovas Tamás FMT Tuchband Tamás AGT Gipsz Jakab NULL tanszekek tanszekkod tanszeknev FMT Fotogrammetria AGT Geodézia OCT Szerves Kémia

Kapcsolatok (természetes) SELECT * FROM oktatok NATURAL JOIN tanszekek; oktato tanszekkod tanszeknev Koppányi Zoltán FMT Fotogrammetria Lovas Tamás FMT Fotogrammetria Tuchband Tamás AGT Geodézia

Kapcsolatok (INNER JOIN) SELECT * FROM oktatok INNER JOIN tanszekek ON oktatok.tanszekkod = tanszekek.tanszekkod; oktatok.oktato oktatok.tansz ekkod tanszekek.tan szekkod tanszekek.tan szeknev Koppányi Zoltán FMT FMT Fotogrammetria Lovas Tamás FMT FMT Fotogrammetria Tuchband Tamás AGT AGT Geodézia

Kapcsolatok Lógó sor: olyan sor, amelyek egy másik reláció egyetlen sorával sem kapcsolódnak össze. Külső összekapcsolások a külső kapcsolatok esetén a lógó sorokat is megjelenítjük teljes (FULL OUTER JOIN) jobbról, balról (LEFT OUTER JOIN, RIGHT OUTER JOIN)

Kapcsolatok (LEFT OUTER) SELECT * FROM oktatok LEFT OUTER JOIN tanszekek ON oktatok.tanszekkod = tanszekek.tanszekkod; oktatok.oktato oktatok.tansz ekkod tanszekek.tan szekkod tanszekek.tan szeknev Koppányi Zoltán FMT FMT Fotogrammetria Lovas Tamás FMT FMT Fotogrammetria Tuchband Tamás AGT AGT Geodézia Gipsz Jakab NULL NULL NULL

Kapcsolatok (RIGHT OUTER) SELECT * FROM oktatok RIGHT OUTER JOIN tanszekek ON oktatok.tanszekkod = tanszekek.tanszekkod; oktatok.oktato oktatok.tansz ekkod tanszekek.tan szekkod tanszekek.tan szeknev Koppányi Zoltán FMT FMT Fotogrammetria Lovas Tamás FMT FMT Fotogrammetria Tuchband Tamás AGT AGT Geodézia NULL NULL OCT Szerves Kémia

Hivatkozási épség megőrzése NULL értékre állítás módszere Kaszkádolt frissítés CREATE TABLE táblanév (, ON DELETE SET NULL ON UPDATE CASCADE );

Megszorítások Attribútumokra vonatkozó (definíciókor) CREATE TABLE hallgato ( neptun_kod VARCHAR(6) NOT NULL, atlag FLOAT CHECK (altag > 0), nem CHAR(1) CHECK (nem IN ('F','N')),... );

Megszorítások Értéktartományra vonatkozó PostgreSQL példa! CREATE DOMAIN azonositok INT CHECK (VALUE >= 10000); CREATE TABLE hallgatok ( azon azonositok, );

Megszorítások Rekordra CREATE vonatkozó TABLE hallgatok ( nev CHAR(30) UNIQUE, nem CHAR(1) CHECK (nem = 'N' OR nem = 'F') );

Megszorítások Elnevezés... nev CHAR(30) CONSTRAINT nevkulcs PRIMARY KEY... CREATE DOMAIN fizetes INT CONSTRAINT nagyszam CHECK (VALUE >= 100000); Módosítás ALTER TABLE szinesz DROP CONSTRAINT nevkulcs; ALTER TABLE rendezo ADD CONSTRAINT nagyszam;

Forrás Wikipedia http://hu.wikipedia.org/wiki/adatb%c3%a1zis http://en.wikipedia.org/wiki/graph_database http://en.wikipedia.org/wiki/database http://guide.couchdb.org J. D. Ullman J. Widom: Adatbázisrendszerek M. J. Hernandez: Adatbázis-tervezés Gajdos Sándor: Adatbázisok Dominich Sándor: Adatbáziskezelő rendszerek http://www.bigonehost.com

Köszönöm a figyelmet! Adatbázis rendszerek