Adatbázis rendszerek 1. 1. Gy: MySQL alapok
B IT M A N
103/1
2015.09.27 B ITv: M AN
Témakörök
MySQL letöltés, telepítés
Beállítások, indítófájl
Parancssoros használat
MySQL adatbázisok MySQL adattáblák
103/2
Bolt adatbázis (példa)
B IT M A N
MySQL letöltése (1) XAMPP – http://www.apachefriends.org
103/3
B IT M A N
MySQL letöltése (2)
103/4
B IT M A N
XAMPP telepítése (1)
103/5
B IT M A N
XAMPP telepítése (2)
103/6
B IT M A N
XAMPP telepítése (3)
103/7
B IT M A N
XAMPP telepítése (4)
103/8
B IT M A N
XAMPP Control Panel
103/9
B IT M A N
Témakörök
MySQL letöltés, telepítés
Beállítások, indítófájl
Parancssoros használat
MySQL adatbázisok MySQL adattáblák
103/10
Bolt adatbázis (példa)
B IT M A N
http://127.0.0.1
103/11
B IT M A N
MySQL root jelszó beállítás (1)
103/12
B IT M A N
MySQL root jelszó beállítás (2)
Újraindítás! 103/13
B IT M A N
MySQL indítófájl készítés
103/14
B IT M A N
Mysql.bat
103/15
B IT M A N
Témakörök
MySQL letöltés, telepítés
Beállítások, indítófájl
Parancssoros használat
MySQL adatbázisok MySQL adattáblák
103/16
Bolt adatbázis (példa)
B IT M A N
MySQL parancssoros felület
103/17
B IT M A N
Néhány alapparancs Show databases; Select version(), current_date;
103/18
B IT M A N
Témakörök
MySQL letöltés, telepítés
Beállítások, indítófájl
Parancssoros használat
MySQL adatbázisok MySQL adattáblák
103/19
Bolt adatbázis (példa)
B IT M A N
Relációs adatmodell - Alapok Kód
Építő elemek: MEZŐ REKORD RELÁCIÓ ADATBÁZIS
Név
A3 Kovács B
14 S1
Dolgozó
Munkakör Munkaidő Szupercég 103/20
B IT M A N
Létrehozási sorrend 1. Adatbázis, 2. Adattábla (reláció),
1. Mezők neve, típusa (sorrendiség!) 2. Megszorítások (inegritási feltételek) 3. Kapcsolatok az egyes táblák között, 4. Adatok felvitele.
103/21
B IT M A N
Adatbázisok Create database próba; Use próba;
Drop database próba;
103/22
B IT M A N
Témakörök
MySQL letöltés, telepítés
Beállítások, indítófájl
Parancssoros használat
MySQL adatbázisok MySQL adattáblák
103/23
Bolt adatbázis (példa)
B IT M A N
A mezők jellemzése Domain (mezőtípus): értelmezési tartomány, mely
megadja az elemhez tartozó értékkészletet, és meghatározza a végrehajtható műveletek körét. – Alapvető domainek (mezőtípusok): • Char(n) – karakteres; C(20), • Number(n,m) – numerikus; N(8,2), • Date – dátum. Mező: az adatbázis struktúra azon egysége, melyből a rekordok felépülnek. – A mező a legkisebb DB struktúra egység (egyértékű, atomi). – A mezők megadásánál meg kell adni a domain-t (típust) és az integritási feltételeket. 103/24
B IT M A N
A rekordok jellemzése Rekord: adatbázis struktúra elem, mely a logikailag
összetartozó, és egységként kezelhető elemi adatértékek (mezők) együttesét jelöli. – A rekordszerkezet leírását az ún. séma tartalmazza: • Tábla neve, • Mezők neve, típusa, integritási feltételei. – A rekordon belül bizonyos mezők speciális szerepet töltenek be: kulcsmező, kapcsoló mezők, index mezők, ezek paramétereit is meg kell adni a sémában. – A rekordhoz integritási feltételek köthetők.
103/25
B IT M A N
Séma leírás példa Séma leírás:
Termék [ Kód, Név, Ár, Méret ] Vásárlás [ TKód, VAzon, Dátum, Darab ] Vásárló [ Azonosító, Név, Fiz_mód, Lakcím ] Kód
Név
Azonosító
Név
Vásárlás
Vásárló
Termék Ár
103/26
Leírás Méret
Dátum
Darab
Lakcím
FizMód
B IT M A N
A relációk jellemzői A relációk rekordjaiban tároljuk a logikailag összetartozó
adatokat A relációban tárolt rekordok számát a reláció egyedszámának nevezzük. A relációk tulajdonságaiban (oszlopaiban) az azonos tulajdonságokra vonatkozó adatok jelennek meg. Egy tábla nem tartalmazhat két azonos nevű oszlopot. Az oszlopok (attribútumok) számát a reláció fokának Négyfokú reláció nevezzük.
Egyedszám: kettő 103/27
Azonosító
Név
Évfolyam
Osztály
001
Kati
11
A
002
Tibi
12
B
B IT M A N
A relációk jellemzői 2. Egy relációra vonatkozó követelmények: – A tulajdonságok sorrendje tetszőleges lehet, de a tábla kialakítása után a mezősorrend nem változhat, így minden rekord mezőszerkezete azonos. – Nem tartalmazhat két azonos tulajdonság oszlopot. – Nem lehet két egyforma rekord. – A rekordok sorrendje tetszőleges. – Egy cellába csak egy érték kerülhet, így a modellben közvetlenül nem tárolhatók az összetett és a többértékű tulajdonságok. – Az adatok viszonyára vonatkozó legfontosabb megkötés az elsődleges kulcs, amellyel a reláción belüli rekordok egyértelműen megkülönböztethetők egymástól. 103/28
B IT M A N
Kapcsolatok – A modell nem tárolja külön elemként a kapcsolatokat, hanem az egymással összefüggésben lévő relációkban megismétli valamelyik mezőt, és a kapcsolatot a mezőbe beírt adatok értékegyezősége adja.
– Két reláció között értelmezett a kapcsoló (idegen) kulcs, amely olyan értékeket tartalmaz, amely egy másik tábla elsődleges kulcsával megegyezik, így megvalósítva a két tábla közötti kapcsolatot. Útnyilvántartás
Autó
Sorszám Rszám Dátum Útvonal Km
Rendszám Típus Fogyaszt
Kapcsoló kulcs 103/29
Elsődleges kulcs
B IT M A N
Kapcsolatok 2. Ha a kapcsoló kulcsot nem kötelező megadni, akkor
olyan 1:1 kapcsolatot hozhatunk létre a két tábla között, amelyben nem minden rekordnak van párja a kapcsolt táblában. Útnyilvántartás
Autó
Sorszám Rszám Dátum Útvonal Km
Rendszám Típus Fogyaszt
Nem mindegyik autóhoz tartozik útnyilvántartás! Sorszám
Rszám
Dátum
Rendszám
Típus
Fogyaszt
1
ABC-123
14.02.21
ABC-123
Opel
8,5
14.02.16
FFF-663
Renault
7,2
EIS-104
Lada
12,4
DCT-432
Suzuki
6,4
2
103/30
B IT M A N
Kapcsolatok 3. Ha a kapcsoló kulcsot kötelező megadni, és nem
ismétlődhet az értéke, akkor olyan 1:1 kapcsolat van a két tábla között, amelyben minden rekordnak van párja a kapcsolt táblában. Útnyilvántartás
Autó
Sorszám Rszám Dátum Útvonal Km
Rendszám Típus Fogyaszt
Az útnyilvántartásnak autóhoz kell tartoznia! Sorszám
Rszám
Dátum
Rendszám
Típus
Fogyaszt
1
ABC-123
14.02.21
ABC-123
Opel
8,5
2
EIS-104
14.02.16
FFF-663
Renault
7,2
EIS-104
Lada
12,4
DCT-432
Suzuki
6,4
103/31
B IT M A N
Kapcsolatok 4. Ha a kapcsoló kulcsot kötelező megadni, és ismétlődhet
az értéke, akkor 1:N kapcsolat van a két tábla között, vagyis minden rekordhoz több rekord is kapcsolódhat a kapcsolt táblában. Az ilyen típusú kapcsoló kulcsot nevezik általában idegen kulcsnak. Útnyilvántartás
Autó
Sorszám Rszám Dátum Útvonal Km
Rendszám Típus Fogyaszt
Az útnyilvántartásnak autóhoz kell tartoznia, de egy autóhoz több útnyilvántartás is tartozhat. Sorszám
Rszám
Dátum
1
ABC-123
14.02.21
2
ABC-123
14.02.16
103/32
Rendszám
Típus
Fogyaszt
ABC-123
Opel
8,5
FFF-663
Renault
7,2
EIS-104
Lada
12,4
DCT-432
Suzuki
6,4 B IT MAN
Kapcsolatok 5. Ha a két tábla között N:M típusú kapcsolat van, akkor a
kapcsolatot külön táblával (kapcsolótábla) valósítjuk meg.
103/33
Termék
Vásárlás
Vásárló
TKód TNév Ár
TKód VKód
VKód
Név Cím
TKód
TNév
Ár
VKód
Név
Cím
T01
Tej
220
V01
Rozi
Kő u 11
T02
Vaj
210
TKód
VKód
V02
Peti
Só u 32
T03
Tea
550
T01
V01
V03
Miki
Bő u 17
T04
Só
145
T04
V01
V04
Évi
Lé u 46
T02
V03
T04
V01
T03
V04
T02
V04
B IT M A N
Index kulcsok A táblázatok rekordjai fizikailag abban a sorrendben
helyezkednek el a merevlemezen, amilyen sorrendben begépelték őket. Az adatok rendezettségét az index kulcs biztosítja, mely a fizikai táblázat rekordjainak logikai elrendezését határozza meg. Az index kulcsok lehetővé teszik az adatok gyorsabb hozzáférését. Az index létrehozása egy új táblázatot eredményez, melynek egyik oszlopában az indexelt mező elemei szerepelnek rendezetten, a másik oszlopában a rekordok elsődleges kulcsa található. 103/34
B IT M A N
Index kulcsok 2. Index tábla
Autó tábla
Rendszám
Kód
Kód
Rendszám
Típus
Szín
ABC123
A04
A01
BER666
Fiat
zöld
BER666
A01
A02
RTW285
Opel
kék
CDR420
A06
A03
DGZ531
Suzuki
kék
DGZ531
A03
A04
ABC123
Mercedes
fekete
LEM597
A05
A05
LEM597
Opel
fehér
RTW285
A02
A06
CDR420
Nissan
piros
Index kulcs
103/35
B IT M A N
Adatintegritás Az adatintegritás az adatok érvényességét, jóságát jelenti. Hitelesség, megbízhatóság, pontosság, ellentmondás mentesség. Hibás adatok: – 2 azonos kulcs, – elírt érték, – szám helyett szöveg Elkerülése: – Ellenőrzött adatbevitel, – Kulcsértékek figyelése, – Hivatkozások figyelése 103/36
B IT M A N
Az adatintegritás szintjei Mező szintű megszorítások Rekord szintű megkötések
Kód
Név
A3 Kovács B
14 S1
Reláció szintű előírások
Adatbázis szintű ellenőrzések
Dolgozó
Munkakör Munkaidő Szupercég 103/37
B IT M A N
Mező szintű megkötések
A3 Kovács B
14
S1
Egy mezőre vonatkozó érvényes érték előfordulások körét
lehet megadni: – A megkötés lehet logikai kifejezés, amely minden lehetséges értékre igaz vagy hamis értéket ad vissza • Check Kor>0 – A megkötés vonatkozhat arra, hogy a mezőben tárolt érték nem lehet üres (kötelező megadni) • Kód Not Null – Előírható egy sablon, mely az adat külalakjára vonatkozik • Rendszámban 3 betű, aztán kötelező –, végül 3 számjegy Az adatbázisba csak olyan mezőértékek vihetők be, melyek a megadott szabályoknak eleget tesznek. 103/38
B IT M A N
Rekord szintű megkötések
A3 Kovács B
14
S1
Egy teljes rekord elfogadhatóságát kell eldönteni Az ellenőrzési feltételben a reláció sémájában szereplő
mezők szerepelhetnek Az integritási feltétel célja az egy rekordon belül egymáshoz kapcsolódó mezők értékeinek vizsgálata – Ha a végzettség középfokú, a fizetés > 80000 Ft. – Ha a kategória élelmiszer, az áfa 10 vagy 15 % lehet. – Ha a kód A vagy B betűvel kezdődik, a tárolási hely a E vagy az F rekesz lehet.
103/39
B IT M A N
Reláció és adatbázis szint Reláció szint A teljes relációt, vagyis az összes rekord előfordulást át kell vizsgálni – Az adott mezőben ugyanaz az érték nem fordulhat elő többször a relációban (egyediség) – Kód Unique – Elsődleges kulcs mező (mezők) – Kód Primary key Adatbázis szint A feltétel több relációban, szétszórtan elhelyezkedő mezőkre vonatkozik, az ellenőrzéshez több reláció adatait is át kell olvasni – Idegen kulcs mező (csak egy másik táblában szereplő értékeket vehet fel) – Ha az A táblában a kód A7, a B táblában az érték csak 10 és 20 között lehet 103/40
B IT M A N
Egyed integritási szabály Minden relációban legyen egyedi értékű kulcs (mező vagy mezőcsoport), ami egyértelműen meghatározza a rekord előfordulásokat. A kulcs mező (mezők) értékét kötelező kitölteni, vagyis és a kulcs nem lehet üres. A kulcs lehet egyszerű (egy mező, pl. autó rendszáma vagy személy adószáma) vagy összetett (több mező, pl. tanfolyam címe, időpontja, repülőjárat száma és a dátum).
Hivatkozás integritási szabály Minden kapcsoló kulcs mező értéke vagy üres, vagy egy létező, hivatkozott táblabeli elsődleges kulcsértékre mutat. 103/41
B IT M A N
Adattáblák létrehozása (1) Create table táblanév( Ékezetes mezőnevek? oszlopnév mezőtípus definíciók, Inkább ne használjuk! oszlopnév mezőtípus definíciók, ... Not null, default, primary kulcsok, key, auto_increment, indexek, unique, comment megszorítások );
103/42
B IT M A N
Numerikus mezőtípusok (1) Egész típusú:
– TINYINT 1 byte – SMALLINT 2 byte – MEDIUMINT 3 byte – INT (INTEGER) 4 byte – BIGINT 8 byte Mindegyik lehet előjeles, vagy előjel nélküli: UNSIGNED
103/43
B IT M A N
Numerikus mezőtípusok (2) Lebegőpontos típusú:
– FLOAT(M,D) 24 tizedesig – DOUBLE(M,D) (Real) 53 tizedesig – DECIMAL(M,D) 1 byte/jegy – NUMERIC(M,D) 1 byte/jegy Mindegyik előjeles
103/44
B IT M A N
Dátum, idő mezőtípusok DATE: ÉÉÉÉ_HH_NN DATETIME: ÉÉÉÉ-HH-NN ÓÓ:PP:MM TIMESTAMP(méret):
– ÉÉÉÉHHNNÓÓPPMM (14 jegyű) – ÉÉHHNNÓÓPPMM (12 jegyű) – ÉÉÉÉHHNN (8 jegyű) – ÉÉHHNN (6 jegyű) TIME: ÓÓ:PP:MM YEAR: – 1901-2155 (4 jegyű) – (19)70-(20)69 (2 jegyű) 103/45
B IT M A N
Szöveges mezőtípusok CHAR: max 255 karakter, fix hossz VARCHAR: max 255 karakter, változó hossz BLOB: max 65535 krt, case sensitive
TEXT: max 65535 krt, nem case sensitive TINYBLOB/TEXT: max 255 karakter MEDIUMBLOB/TEXT: max 16777215 karakter LONGBLOB/TEXT: max 4294967295 karakter ENUM: lista max 65535 értékkel Karakterszámot lehet, de nem kell megadni!
103/46
B IT M A N
Adattáblák létrehozása – Definíciók Create table táblanév( oszlopnév mezőtípus definíciók, . . . Not null – Nem maradhat üresen a cella Default – Alapérték (egyeznie kell a mezőtípussal) Auto_increment – Automatikusan növelt mezőérték Unique – Egyediség, nem lehet egyforma érték a mezőben Comment – Megjegyzés Primary key – Elsődleges kulcs (jobb külön sorban megadni)
103/47
B IT M A N
Adattáblák létrehozása – Megszorítások Create table Melós( IDM int, IDM int Primary key, Check (IDM > 1000), Unique (IDM),
Index (IDM), Foreign key (IDM) references Munkakör(Mkód),
);
103/48
B IT M A N
Példák CREATE TABLE pld1 ( id INT PRIMARY KEY, nev VARCHAR(100), datum DATE, suly FLOAT(8,5));
CREATE TABLE pld2 ( az INT PRIMARY KEY, hely VARCHAR(100), darab INT(10) UNSIGNED, Foreign key (az) references pld1(id));
CREATE TABLE pld1 ( id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, nev VARCHAR(50) NOT NULL, darab INT(10) unsigned not null default '0', idopont TIMESTAMP(8) DEFAULT NOW(), Unique (nev) ) TYPE=innodb; 103/49
B IT M A N
Témakörök
MySQL letöltés, telepítés
Beállítások, indítófájl
Parancssoros használat
MySQL adatbázisok MySQL adattáblák
103/50
Bolt adatbázis (példa)
B IT M A N
103/51
Bolt adatbázis (példa)
ER modell
Táblák létrehozása
Táblák módosítása
Adatok feltöltése
B IT M A N
Bolt – ER modell Kkód
Név
Tkód
Név Ár
Kategória
K-T
Termék Leírás Időpont
Sorszám
Vásárlás Darab
Név
Vásárló VID Cím
103/52
Fizmód
B IT M A N
ER konverziója relációs modellre ER elemek Egyed – Normál – Gyenge
Tulajdonság – – – – –
Elemi Kulcs Összetett Többértékű Származtatott
Kapcsolatok – – – – 103/53
1:1 1:N N:M kötelező
Relációs elemek Reláció reláció kulcs mezővel reláció kulcs mező nélkül
Mező
mező kulcs mező több mezőre bontjuk szét külön relációba kerül csak a képletet tároljuk
Kapcsolatok
egyedi kapcsoló kulcs kapcsoló kulcs kapcsoló tábla nem üres kapcsoló kulcs
B IT M A N
Bolt: ER modell –> Relációs konverzió (1) Kkód
Kkód – Elsődleges kulcs, fix hossz! Név – Kötelező, egyedi, változó hossz
Név
Kategória
Kategória-Termék kapcsolat – Termék táblában idegen (kapcsoló) kulcs mező, mely a Kategória(Kkód) mezőre mutat
K-T
Tkód
Név Ár
Termék Leírás 103/54
Tkód – Elsődleges kulcs, fix hossz Név – Nem lehet null értékű Ár – Egész, nem lehet negatív Leírás – Változó hossz +Kategória – Idegen kulcsB IT M A N
Bolt: ER modell –> Relációs konverzió (2)
Kkód
Név
Tkód
Név Ár
Kategória
K-T
Termék Leírás
103/55
Kategória
Termék
Kkód Név
Kategória Tkód Név Ár
Leírás
B IT M A N
Bolt: ER modell –> Relációs konverzió (3)
Időpont Sorszám
Vásárlás Darab
Név
Vásárló VID
Cím
103/56
Fizmód
Sorszám – Pozitív egész, növekedjen automatikusan Időpont – Alapérték az aktuális időpont +Tkód, VID – Kapcsoló mezők
VID – Elsődleges kulcs Név – Kötelező, változó h, nem egyedi Cím – Változó hossz Fizmód – Csak bizonyos értékeket vehet fel, fix hossz
B IT M A N
Bolt – Struktúra Kategória
Termék
Kkód Név
Kategória Tkód Név Ár
Leírás
Termék Vásárlás Tkód Sorszám Időpont Darab VID Időpont Sorszám
Vásárlás Darab
Vásárló VID Név Cím
Név
Fizmód
Vásárló VID 103/57
Cím
Fizmód
B IT M A N
Bolt – Táblák létrehozási sorrendje Kkód
Név
Tkód
Név Ár
Kategória
K-T
2
Termék Leírás
1 Időpont Sorszám
4
Vásárlás Darab
Név
Vásárló VID
3 Cím
103/58
Fizmód
B IT M A N
103/59
Bolt adatbázis (példa)
ER modell
Táblák létrehozása
Táblák módosítása
Adatok feltöltése
B IT M A N
Táblajáték – Kategória Create database bolt; Use bolt; Create table Kategória( Kkód char(3) primary key, Név varchar(20) not null, Unique (Név));
103/60
B IT M A N
Táblajáték – Kategória – Ellenőrzés Describe Kategória;
Show create table Kategória;
103/61
B IT M A N
Táblajáték – Termék Create table Termék( Tkód char(3) primary key, Név varchar(20) not null, Ár int unsigned, Leirás varchar(20), Kategória char(3) not null, Foreign key (Kategória) references Kategória(Kkód));
103/62
B IT M A N
Táblajáték – Termék – Ellenőrzés (1) Describe termék;
103/63
B IT M A N
Táblajáték – Termék – Ellenőrzés (2) Show create table termék;
103/64
B IT M A N
Táblajáték – Vásárló Create table Vásárló( VID char(3) primary key, Név varchar(30) not null, Cím varchar(30), Fizmód char(4));
103/65
B IT M A N
Táblajáték – Vásárló – Ellenőrzés Describe Vásárló;
103/66
B IT M A N
Táblajáték – Vásárlás Create table Vásárlás( Sorszám int unsigned Auto_Increment, Időpont timestamp Default Current_Timestamp, Tkód char(3) not null, Darab smallint, VID char(3) not null, Primary key (Sorszám), Foreign key (Tkód) references Termék(Tkód), Foreign key (VID) references Vásárló(VID)); 103/67
B IT M A N
Táblajáték – Vásárlás
103/68
B IT M A N
Táblajáték – Vásárlás – Ellenőrzés
103/69
B IT M A N
Táblajáték – Vásárlás – Ellenőrzés
103/70
B IT M A N
103/71
Bolt adatbázis (példa)
ER modell
Táblák létrehozása
Táblák módosítása
Adatok feltöltése
B IT M A N
Bolt – ER modell (bővítés) Kkód
Név
Tkód
Név Ár
Kategória
K-T
Termék Leírás
Időpont Sorszám
Vásárlás
Darab Név
Vásárló
V-F
Fkód
Leírás
Fizetés
VID Cím
103/72
Fizmód
B IT M A N
Bolt: ER modell –> Relációs konverzió (3) Fkód
Leírás
Fkód – Elsődleges kulcs, fix hossz! Leírás – Kötelező, egyedi, változó hossz
Fizetés
V-F
Vásárló-Fizetés kapcsolat – Vásárló táblában idegen (kapcsoló) kulcs mező, mely a Fizetés(Fkód) mezőre mutat
Fkód – Legyen Tinyint (1-Bankkártya, 2-Készpénz, 3-Átutalás, 4-Utánvét) Emiatt módosítani kell a mezőtípust és a megszorítást a Vásárló táblában! 103/73
B IT M A N
Bolt adatbázis Kkód
Név
Tkód
Név
Ár
Kategória
K-T
Termék Leírás Időpont
Sorszám
Vásárlás Darab
Fkód
Leírás
Név
Vásárló
V-F
Fizetés
VID Cím
103/74
B IT M A N
Bolt – Struktúra Kategória
Termék
Kkód Név
Kategória Tkód Név Ár
Leírás
Vásárlás Tkód Sorszám Időpont Darab VID
Fizetés
Vásárló VID Név Cím
103/75
Fizmód
Fkód Leírás
B IT M A N
Táblajáték – Fizetés Create table Fizetés( Fkód tinyint(1) primary key, Leírás varchar(20) not null, Unique (Leírás));
103/76
B IT M A N
Táblajáték – Vásárló módosítás alter table vásárló modify column Fizmód tinyint(1) not null; alter table vásárló add constraint Foreign key (Fizmód) references Fizetés(Fkód);
103/77
B IT M A N
103/78
Bolt adatbázis (példa)
ER modell
Táblák létrehozása
Táblák módosítása
Adatok feltöltése
B IT M A N
Adatbevitel – Kategória insert into Kategória values('k01', 'Kaja'); insert into Kategória values('k02', 'Pia'); insert into Kategória values('k03', 'Ruha'); insert into Kategória values('k04', 'Egyéb');
103/79
B IT M A N
Adatbevitel – Fizetés Adatbevitel fájlból: LOAD DATA LOCAL INFILE ’c:/Fizmodok.txt’ INTO TABLE Fizetés;
103/80
B IT M A N
Adatbevitel – Termék (1) insert into Termék values('t01', 'sör', 200, 'világos', 'k02'); insert into Termék values('t02', 'bor', 200, 'vörös', 'k02'); insert into Termék values('t03', 'zsömle', 20, 'kerek', 'k01'); insert into Termék values('t04', 'zsír', 100, 'disznó', 'k01'); insert into Termék values('t05', 'paprika', 100, 'zöld', 'k01'); insert into Termék values('t06', 'csipsz', 300, 'sajtos', 'k01'); insert into Termék values('t07', 'csipsz', 400, 'retkes', 'k01'); insert into Termék values('t08', 'mackó felső', 8000, 'Adidasss', 'k03'); insert into Termék values('t09', 'mackó alsó', 8000, 'Adidasss', 'k03'); insert into Termék values('t10', 'mackó póló', 5000, 'Adidasss', 'k03'); 103/81
B IT M A N
Adatbevitel – Termék (2) insert into Termék values('t11', 'Fű', 5000, 'KO', 'k04'); insert into Termék values('t12', 'AB2 puska', 5000, 'Mert megérdemled', 'k04'); insert into Termék values('t13', 'Benzin', 250, 'Óccsó', 'k04'); insert into Termék values('t14', 'Nő', 10000, 'Szőke', 'k04'); insert into Termék values('t15', 'Nő', 20000, 'Barna', 'k04'); insert into Termék values('t16', 'Óvszer', 2000, 'Családi csomag', 'k04');
103/82
B IT M A N
Termék tábla lista
103/83
B IT M A N
Adatbevitel – Vásárló insert into Vásárló values('v01', 'Kék Alma', 'Mc. Kék u.12', 2); insert into Vásárló values('v02', 'Zöld Gabi', 'Mc. Hó u.72', 3); insert into Vásárló values('v03', 'Feke Farkas', 'Mc. Kő u.25', 1); insert into Vásárló values('v04', 'Korcs Éva', 'Eger. Lap u.4',1); insert into Vásárló values('v05', 'Kis Béla', 'Eger. Bé u.9', 2); insert into Vásárló values('v06', 'Kis Jenő', 'Eger. Cé u.11', 3); insert into Vásárló values('v07', 'Kis Noé', 'Eger. Cé u.11', 4); insert into Vásárló values('v08', 'Kis Tas', 'Eger. Cé u.11', 1); insert into Vásárló values('v09', 'Hó Manó', 'Nyék. Tó u.74', 2); insert into Vásárló values('v10', 'Ká Rozi', 'Nyék. Ká u.5', 3); insert into Vásárló values('v11', 'Víz Jenő', 'Mc. Út u.39', 3); 103/84
B IT M A N
Vásárló tábla lista
103/85
B IT M A N
Adatbevitel – Vásárlás insert into Vásárlás (Tkód, Darab, VID) values('t14', 1, 'v06'); insert into Vásárlás (Tkód, Darab, VID) values('t15', 1, 'v06'); insert into Vásárlás (Tkód, Darab, VID) values('t16', 1, 'v06'); insert into Vásárlás (Tkód, Darab, VID) values('t03', 4, 'v01'); insert into Vásárlás (Tkód, Darab, VID) values('t04', 1, 'v01'); insert into Vásárlás (Tkód, Darab, VID) values('t02', 2, 'v02'); insert into Vásárlás (Tkód, Darab, VID) values('t06', 2, 'v02'); insert into Vásárlás (Tkód, Darab, VID) values('t07', 4, 'v02'); insert into Vásárlás (Tkód, Darab, VID) values('t08', 1, 'v03'); insert into Vásárlás (Tkód, Darab, VID) values('t09', 1, 'v03'); insert into Vásárlás (Tkód, Darab, VID) values('t11', 3, 'v04'); insert into Vásárlás (Tkód, Darab, VID) values('t12', 1, 'v04'); insert into Vásárlás (Tkód, Darab, VID) values('t13', 100, 'v05'); 103/86
B IT M A N
Vásárlás tábla lista
103/87
B IT M A N
Lista: Ki mikor mit vett? Select V.név, Időpont, T.név from Vásárló AS V inner join Vásárlás AS VS ON V.VID=VS.VID inner join Termék AS T ON VS.Tkód=T.Tkód;
103/88
B IT M A N
103/89
Bolt adatbázis (példa)
ER modell
Táblák létrehozása
Táblák módosítása
Adatok feltöltése
Táblák újabb módosítása
B IT M A N
Ötlet – Bolt adatbázis továbbfejlesztés Kkód
Tkód
Név
RHkód
Név
Ár
Kategória
K-T
Termék
Raktár
T-R
Leírás RDB
BDB
Időpont Sorszám
Vásárlás Darab
Fkód
Leírás
Név
Vásárló
V-F
Fizetés
VID Cím
103/90
B IT M A N
Ötlet – Bolt adatbázis továbbfejlesztés RHkód
Raktár RDB
BDB
T-R
RHkód – Elsődleges kulcs, fix hossz! RDB – Raktári darabszám BDB – Bolti darabszám A két darabszám összege a teljes készlet! Termék-Raktár kapcsolat – Valamelyik táblában kell egy idegen (kapcsoló) kulcs mező, mely a másik tábla elsődleges kulcs mezőjére mutat
Kérdés: Inkább bővítsük a Termék táblát a szükséges mezőkkel? 103/91
B IT M A N
Adatbázis rendszerek 1. Ellenőrző kérdések
B IT M A N
103/92
B IT M A N
Ellenőrző kérdések 1. 1. Hogyan kell bejelentkezni a mysql parancssorban: A: use mysql username -p B: login mysql -u -p C: mysql -u username -p D: mysql login -u username password 2. Hogyan íratjuk ki a használható adatbázisok listáját? A: show databases; B: select databases; C: show user_databases; D: select user_databases; 103/93
B IT M A N
Ellenőrző kérdések 2. 3. Ha a bolt adatbázisban van termék tábla, akkor a select * from bolt.termék; parancs: A: Helyes B: Helytelen 4. Melyik létező mysql adattípus? A: tinyint E: bigint B: smallint F: longint C: mediumint G: integer D: int H: numeric
103/94
B IT M A N
Ellenőrző kérdések 3. 5. Melyik paranccsal lehet létrehozni adatbázis táblát? A: BUILD C: CREATE
B: CONSTRUCT D: MAKE
E: PREPARE
6. Melyik paranccsal lehet törölni adatbázis táblát? A: CLOSE D: DROP
B: DELETE E: KILL
C: CLEAR
7. Helyes az alábbi parancs? SELECT az, count(*) FROM vásárló WHERE az='az';
A: Igen 103/95
B: Nem
B IT M A N
Ellenőrző kérdések 4. 8. Melyik paranccsal lehet kiíratni azokat a termékeket, melyeknek üres a leírás mezője? A: select név from termék where leírás =' '; B: select név from termék where leírás = NULL; C: select név from termék where leírás IS NULL; D: select név from termék where leírás EMPTY; E: select név from termék where leírás LIKE ' '; 9. Helyes az alábbi parancs? SELECT terméknév FROM termék WHERE ár > 200 and < 500; A: Igen 103/96
B: Nem
B IT MAANN I TM
Ellenőrző kérdések 5. 10. Melyik kulcsszó hiányzik a parancsokból? 1. 2. SELECT név FROM termék WHERE ár > 1000; 3. UPDATE termék SET
ár=ár*1.1;
4. SELECT név, ár FROM termék ORD
név;
SELECT count(*) FROM vásárló
;
SELECT count(*) INSERT
7.
A: TO D: FROM G: INTO 103/97
6.
5.
A FROM vásárló;
termék values (23, ′Retekmag′);
B: SET E: GROUP BY H: ORDER BY
C: WHERE F: SHORT BY I: Nem hiányzik kulcsszó
B IT MAANN I TM
Ellenőrző kérdések 6. 11. Alakítson kategóriákat, és sorolja az alábbi parancsokat az egyes kategóriákba! Kategóriák:
A: insert D: create G: drop 103/98
Parancsok:
B: select E: update H: delete
C: grant F: modify I: revoke
B IT MAANN I TM
Ellenőrző kérdések 7. 12. Milyen szintű megszorítások az alábbiak: Unique Not null Primary key Foreign key Check (a>30) Check (a>30 and b<10); A: mező C: tábla 103/99
B: rekord D: adatbázis
B IT M A N
Ellenőrző kérdések 8. 13. Írja be a hiányzó kifejezéseket! 1. 2. ALTER TABLE vásárló MODIFY COL 3. TINYINT(1) NOT NULL;
fizmód
4. ALTER TABLE VÁSÁRLÓ ADD CONS FOREIGN KEY 5. (FIZMÓD) REFE FIZETÉS(FKÓD); 6. 7. LOAD LOCAL INFILE ′c:/f.txt′ INTO
103/100
8. TABLE Fizetés;
B IT M A N
103/101
B IT M A N
Felhasznált irodalom bitman.uw.hu – Eskúel (elektronikus jegyzet) bitman.uw.hu – F1-Pl/Sql feladatok (elektronikus
jegyzet) www.w3school.com – SQL Tutorial www.tizag.com – MySQL Tutorial www.tutorialspoint.com – MySQL Tutorial
103/102
B IT M A N
VÉGE 103/103
B IT M A N