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

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

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

Adatbázis Rendszerek II. 3. SQL alapok

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

Adatbázis Rendszerek I. 10. SQL alapok (DML 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 Ea: Eskúel. Structured Query Language

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 SQL nyomkövetés

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

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

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

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

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

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

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

Adattípusok. Max. 2GByte

Adattípusok. Max. 2GByte

Bevezetés: az SQL-be

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

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

Adatbázis használat I. 5. gyakorlat

SQL parancsok feldolgozása

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

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

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

BEVEZETÉS Az objektum fogalma

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

Adatbázis rendszerek Gy: MySQL alapok

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

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

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

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

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

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

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.

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

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

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

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

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

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

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

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

Adatbázisok* tulajdonságai

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

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ázisok. 9. gyakorlat SQL: SELECT október október 26. Adatbázisok 1 / 14

ADATBÁZIS RENDSZEREK I BEADANDÓ

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:

Java és web programozás

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

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

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

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

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

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

Elemi alkalmazások fejlesztése IV.

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

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

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

Tranzakciókezelés PL/SQL-ben

Vizuális programozás gyakorlat

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

STRUCTURED QUERY LANGUAGE(SQL) - ALAPOK

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

Java és web programozás

Adatbázis I. 11. előadás. Kulcsok az SQL ben. Hivatkozásépségi megszorítások és idegen kulcsok.

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

w w w. h a n s a g i i s k. h u 1

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

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. Molnár Bence. Szerkesztette: Koppányi Zoltán

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

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

Dolgozó Kód Név Város Beosztás Belépés Fizetés Osztály. Adatbázis-kezelés alapjai SQL 2: DQL. v: B IT MAN 169/1

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

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

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

Adatbázis, adatbázis-kezelő

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

BUJDOSÓ GYÖNGYI. Bevezetés az SQL-be OKTATÁSI SEGÉDANYAG AZ ADATBÁZISKEZELÉS CÍMŰ GYAKORLATHOZ DEBRECENI EGYETEM INFORMATIKAI KAR

BEVEZETÉS Az objektum fogalma

Spatial a gyakorlatban

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

Lekérdezések az SQL SELECT utasítással

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

Webfejlesztés 4. alkalom

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

Adatbázis Rendszerek II. 5. PLSQL Csomagok 16/1B IT MAN

MS ACCESS 2010 ADATBÁZIS-KEZELÉS ELMÉLET SZE INFORMATIKAI KÉPZÉS 1

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

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

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

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

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

Adatbázisok biztonsága

Oracle Spatial. Térbeli adatot tartalmazó tábla: Geometry table Legalább 2 oszlopa van: Elsődleges kulcs, SDO_GEOMETRY típusú oszlop.

Átírás:

Adatbázis Rendszerek I. 9. SQL alapok (DDL esettanulmány) 41/1 B IT v: 2017.10.30 MAN

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 41/2

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(3) CHECK (Kor >= 0) ); 41/3 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

Tábla (vagy más objektum) létrehozása Kód 1 2 3 Rendszám Típus Szín GBC-765 Opel Fehér JED-123 Nissan Ezüst AKT-392 Trabant Kék CREATE SEQUENCE k_s; insert into Autó values (k_s.nextval, CREATE INDEX RIndex ON Autó (Rendszám); Rendszám AKT-392 GBC-765 JED-123 Kód 3 1 2 CREATE VIEW OpelAutó AS Select Kód, Rendszám, Szín FROM Autó Where Tipus='Opel'; Kód 1 Rendszám GBC-765 Szín Fehér 41/4

Adattípusok Alap adattípusok: Char(n) fixen n hosszúságú karaktersorozat, Hossza max. 2000 karakter A rövidebb szövegek végére szóközök kerülnek Number(n,m) n jegyű decimális szám, ebből m tizedes jegy; Number(8,2) 12345.12 Max. 38 számjegyből állhat Date dátum. 41/5

Oracle adattípusok Szöveges adattípusok CHAR (1-2000), fix hosszúságú adatok NCHAR (1-2000) Unicode kódolással VARCHAR (1-4000) változó hosszúságú adatok (null üres karakterlánc) VARCHAR2 (1-4000) Unicode kódolással (null = üres karakterlánc) LONG (max. 2 GB) CLOB (max. 4 GDb-1 adathoz) 41/6 NCLOB (max. 4 GDb-1 adathoz, Unicode kódolással)

Oracle adattípusok Numerikus adattípusok NUMBER (±10 125 ) Max. 38 számjegy INT (INTEGER) (±2 31 ) SMALLINT (±2 15 ) DECIMAL (±10 308 ) Max. 15 számjegy 41/7

Oracle adattípusok Dátum és időpont adattípusok DATE (ie. 4712.01.01 isz. 9999.12.31) TIMESTAMP (másodperc pontossággal) 41/8

Integritási feltételek megadása Primary key elsődleges kulcs References hivatkozás másik táblára 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 41/9

Adattáblák létrehozása Megszorítások Create table Melós( IDM int, IDM int Primary key, Check (IDM > 1000), IDM int Default '29', Unique (IDM), Index (IDM), Foreign key (IDM) references Munkakör(Mkód), ); 41/10

Példák Oracle! create table pld1 ( id int primary key, nev varchar(100), datum date, suly float(8) ); create table pld2 ( az int primary key, hely varchar2(100), darab int check (darab>=0), foreign key (az) references pld1(id) ); create sequence id_seq; create table pld3 ( id int default id_seq.nextval primary key, nev varchar2(50) not null, darab number(10) default '0' not null, idopont timestamp default sysdate, unique (nev) ); 41/11 Fontos a sorrend!

Tábla módosítása, átnevezése ALTER TABLE táblanév [ADD (újelem,..., újelem)] [MODIFY (módosítás,..., módosítás)] [DROP (oszlop,..., oszlop)] [RENAME COLUMN régi_név TO új_név] újelem: egy "oszlopnév adattípus [feltétel]" csoport módosítás: "oszlopnév adattípus [feltétel]" ALTER TABLE Autó ADD Tulaj varchar(35); Fontos: a mezők mérete általában csak növelhető! RENAME táblanév TO újtáblanév 41/12 Tábla átnevezése

Tábla módosítása create table személy( id number(4), név varchar(30) ); ALTER TABLE személy ADD szülév number(4); ALTER TABLE személy RENAME COLUMN szülév TO szüldátum; ALTER TABLE személy MODIFY szüldátum date; ALTER TABLE személy MODIFY id primary key; DESC személy; ALTER TABLE személy DROP primary key; ALTER TABLE személy DROP COLUMN szüldátum; RENAME személy TO person; 41/13

Tábla módosítása comment on column person.id is '100 és 300 közötti adatok'; ALTER TABLE person MODIFY név default 'Kis Béla'; ALTER TABLE person MODIFY NÉV DEFAULT NULL; 41/14

Tábla módosítása: megszorítások Javaslat ALTER TABLE person ADD CONSTRAINT cn1 PRIMARY KEY(id); ALTER TABLE person ADD CONSTRAINT cn2 UNIQUE (név) ALTER TABLE person ADD CONSTRAINT cn3 CHECK (id > 200) create table department( dpno int, dpname varchar(30) ); ALTER TABLE department ADD CONSTRAINT cn4 primary key(dpno); ALTER TABLE person ADD dp int; ALTER TABLE person ADD CONSTRAINT cn5 FOREIGN KEY (dp) REFERENCES department(dpno); ALTER TABLE person DROP CONSTRAINT cn1; 41/15

Megszorítások listázása SELECT * FROM user_constraints WHERE table_name = 'PERSON' 41/16 C check constraint on a table P primary key U unique key R referential integrity V with check option, on a view O with read only, on a view Csupa nagybetű!

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ó; 41/17

Vedd észre! Táblák létrehozási sorrendje 1. Először azokat a táblákat kell létrehozni, amelyekből nem hivatkozunk más táblákra 2. Azután azokat, amelyekből hivatkozunk más táblákra 1 Kategoria Termek 2 Kkod Nev Kategoria Tkod Nev Ar Leiras Vasarlas Tkod Sorszam Idopont Darab VID 5 4 Vasarlo VID Nev Cim Fizmod FizModok Fkod Leiras 3 41/18

Vedd észre! Táblák törlési sorrendje 1. Először azokat a táblákat lehet törölni, amelyekből hivatkozunk más táblákra 2. Azután azokat, amelyekből nem hivatkozunk más táblákra 5 Kategoria Termek 4 Kkod Nev Kategoria Tkod Nev Ar Leiras Vasarlas Tkod Sorszam Idopont Darab VID 1 2 Vasarlo VID Nev Cim Fizmod FizModok Fkod Leiras 3 41/19

Lehetőségek Tábla létrehozása másolással (új táblanévvel) CREATE TABLE Személyek AS SELECT * FROM Person; Person ID 1 2 3 Név Dp Kis Béla 10 Kő Dezső 11 Hó Jenő 10 Személyek ID 1 2 3 Név Dp Kis Béla 10 Kő Dezső 11 Hó Jenő 10 Üres tábla létrehozása másolással Create table Személyek as select * from Person WHERE 1=0; Person ID 1 2 3 Név Dp Kis Béla 10 Kő Dezső 11 Hó Jenő 10 Személyek ID Név Dp 41/20

Lehetőségek Üres tábla létrehozása másolással, eltérő szerkezettel CREATE TABLE Személyek AS SELECT id, név FROM Person WHERE 1=0; Person ID 1 2 3 Név Dp Kis Béla 10 Kő Dezső 11 Hó Jenő 10 Személyek ID Név 41/21

Lehetőségek Tábla létrehozása több táblából create table Személyek as select ID, Név as NAME, DPNAME from Person join Department on dp=dpno Person ID 1 2 3 Név Dp Kis Béla 10 Kő Dezső 11 Hó Jenő 10 Department DpNo 10 11 DpName Designer Programmer 41/22 Személyek ID Name DpName 1 2 3 Kis Béla Kő Dezső Hó Jenő Designer Programmer Designer

Nyomkövetési feladat 41/23

Órai feladat (1) Kövesd a parancsokat! CREATE TABLE dolgozo ( nev VARCHAR2(40), kor NUMBER, munkakor VARCHAR2(60) ); ALTER TABLE dolgozo ADD szuletesiev NUMBER(4) NOT NULL; ALTER TABLE dolgozo DROP COLUMN kor; ALTER TABLE dolgozo ADD szemelyiszam NUMBER(13); ALTER TABLE dolgozo MODIFY szemelyiszam PRIMARY KEY; 41/24

Órai feladat (2) ALTER TABLE dolgozo DROP PRIMARY KEY; ALTER TABLE dolgozo ADD id NUMBER(4) PRIMARY KEY; ALTER TABLE dolgozo RENAME COLUMN munkakor TO mkor; ALTER TABLE dolgozo RENAME COLUMN szuletesiev To szulido; ALTER TABLE dolgozo RENAME COLUMN szemelyiszam TO szemsz; ALTER TABLE dolgozo MODIFY szulido date; ALTER TABLE dolgozo MODIFY szemsz char(13); Add meg azt a CREATE parancsot, amivel a fenti parancsok hatására kialakult táblaszerkezetet létre lehet hozni! dolgozo id nev N(4) vc(40) mkor vc(60) szulido D szemsz c(13) 41/25

Órai feladat (2.5) Add meg azt a CREATE parancsot, amivel a fenti parancsok hatására kialakult táblaszerkezetet létre lehet hozni! dolgozo id nev N(4) vc(40) mkor vc(60) szulido D szemsz c(13) create table dolgozo( id number(4), nev varchar2(40), mkor varchar2(60), szulido date, szemsz char(13) ); 41/26

Órai feladat (3) Kövesd tovább a parancsokat! CREATE TABLE telefonszam ( id NUMBER(4) NOT NULL, mobil char(9) UNIQUE ); ALTER TABLE telefonszam ADD FOREIGN KEY (id) REFERENCES dolgozo(id); telefonszam id mobil N(4) c(9) 41/27

Órai feladat (4) Kövesd tovább a parancsokat! CREATE TABLE fonok ( fonokid NUMBER(4), idkinek NUMBER(4), PRIMARY KEY (fonokid, idkinek), CONSTRAINT c1 FOREIGN KEY (fonokid) REFERENCES dolgozo(id), CONSTRAINT c2 FOREIGN KEY (idkinek) REFERENCES dolgozo(id) ); fonok fonokid N(4) idkinek N(4) Rajzold meg mindhárom tábla relációs modelljét a köztük lévő kapcsolatokkal együtt! 41/28

Órai feladat (4.5) Rajzold meg mindhárom tábla relációs modelljét a köztük lévő kapcsolatokkal együtt! dolgozo id nev N(4) vc(40) mkor vc(60) szulido D szemsz c(13) telefonszam id mobil N(4) c(9) fonok fonokid N(4) idkinek N(4) 41/29

Egyéni feladat B 41/30 IT MAN

Egyéni feladat (1) Készítsen egy táblát: Neve legyen Melós, Legyen benne MID numerikus mező, max. 4 számjeggyel, Legyen benne Név mező, 30 karakterrel. Készítse el a következő módosításokat: MID legyen elsődleges kulcs Szúrjon be egy Születés nevű, dátum típusú mezőt A Név alapértéke legyen Kiss Robi A Születés ne lehessen üres A Születés alapértéke legyen 1990.01.01 41/31

Egyéni feladat (1) Melos tábla elkészítése create table melos( mid number(4), nev varchar2(30) ); MID legyen elsődleges kulcs alter table melos modify mid primary key Szúrjon be egy Születés nevű, dátum típusú mezőt alter table melos add szuletes date A Név alapértéke legyen Kiss Robi alter table melos modify (nev default 'Kiss Robi') 41/32

Egyéni feladat (1) A Születés ne lehessen üres alter table melos add constraint szul_nn check (szuletes is not null); A Születés alapértéke legyen 1990.01.01 select sysdate from dual -> 10/30/2018 alter table melos modify (szuletes default '01/01/1990') 41/33

Egyéni feladat (2) Készítsen egy másik táblát: Neve legyen Munkakör Legyen MAZ nevű, numerikus mezője, max. 4 számjeggyel Legyen MkNév nevű mezője, max. 30 karakter Készítse el a következő módosításokat: MAZ legyen elsődleges kulcs MkNév ne lehessen üres Szúrjon be egy Kereset nevű numerikus mezőt (7 számjegy!) Szúrjon be egy ellenőrzést, a Kereset ne lehessen 200-nál kevesebb! 41/34

Egyéni feladat (2) Munkakör tábla elkészítése create table munkakor( maz number(4), mknev varchar2(30) ); MAZ legyen elsődleges kulcs alter table munkakor modify maz primary key MkNév ne lehessen üres alter table munkakor add constraint mknev_nn check (mknev is not null); 41/35

Egyéni feladat (2) Szúrjon be egy Kereset nevű numerikus mezőt (7 számjegy!) alter table munkakor add kereset number(7) Szúrjon be egy ellenőrzést, a Kereset ne lehessen 200-nál kevesebb! alter table munkakor add constraint ker_ch check (kereset > 200); 41/36

Egyéni feladat (3) Készítse el a következő módosításokat: Szúrjon be egy Mkör nevű numerikus mezőt a Melós táblába, (4 számjegy) Az Mkör mezőből készítsen idegen kulcsmezőt, mely a Munkakör táblával tartja a kapcsolatot! Írassa ki a táblák szerkezetét, ellenőrizze a megoldást! Törölje le a két táblát! 41/37

Egyéni feladat (3) Szúrjon be egy Mkör nevű numerikus mezőt a Melós táblába, (4 számjegy) alter table melos add mkor number(4) Az Mkör mezőből készítsen idegen kulcsmezőt, mely a Munkakör táblával tartja a kapcsolatot! alter table melos add constraint melos_fk foreign key (mkor) references munkakor(maz) Írassa ki a táblák szerkezetét desc melos; desc munkakor; Írassa ki az összes megszorítást, megkötést select * from all_constraints where table_name='melos' 41/38

Egyéni feladat (3) Törölje le a két táblát drop table melos drop table munkakor 41/39

Csá! 41/40

VÉGE VÉGE 41/41