Adatbázis Rendszerek II. 3. Ea: MySQL alapok
B I T MAN
1/106
B Iv: T2014.02.15 MAN
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
2/106
Bolt adatbázis (példa)
B I T MAN
MySQL letöltése (1) XAMPP – http://www.apachefriends.org
3/106
B I T MAN
MySQL letöltése (2)
4/106
B I T MAN
XAMPP telepítése (1)
5/106
B I T MAN
XAMPP telepítése (2)
6/106
B I T MAN
XAMPP telepítése (3)
7/106
B I T MAN
XAMPP telepítése (4)
8/106
B I T MAN
XAMPP Control Panel
9/106
B I T MAN
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
10/106
Bolt adatbázis (példa)
B I T MAN
http://127.0.0.1
11/106
B I T MAN
MySQL root jelszó beállítás (1)
12/106
B I T MAN
MySQL root jelszó beállítás (2)
Újraindítás! 13/106
B I T MAN
MySQL indítófájl készítés
14/106
B I T MAN
Mysql.bat
15/106
B I T MAN
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
16/106
Bolt adatbázis (példa)
B I T MAN
MySQL parancssoros felület
17/106
B I T MAN
Néhány alapparancs Show databases;
Select version(), current_date;
18/106
B I T MAN
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
19/106
Bolt adatbázis (példa)
B I T MAN
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 20/106
B I T MAN
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.
21/106
B I T MAN
Adatbázisok Create database próba; Use próba; Drop database próba;
22/106
B I T MAN
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
23/106
Bolt adatbázis (példa)
B I T MAN
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. B I T MAN
24/106
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.
25/106
B I T MAN
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
26/106
Leírás Méret
Dátum
Darab
Lakcím
FizMód
B I T MAN
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ő 27/106
Azonosító
Név
Évfolyam
Osztály
001
Kati
11
A
002
Tibi
12
B
B I T MAN
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. 28/106
B I T MAN
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
29/106
Elsődleges kulcs
B I T MAN
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
30/106
B I T MAN
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
31/106
B I T MAN
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
32/106
Rendszám
Típus
Fogyaszt
ABC-123
Opel
8,5
FFF-663
Renault
7,2
EIS-104
Lada
12,4
DCT-432
Suzuki
B I6,4T M A N
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.
33/106
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 I T MAN
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ó. 34/106
B I T MAN
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
35/106
B I T MAN
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 36/106
B I T MAN
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 37/106
B I T MAN
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. 38/106
B I T MAN
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.
39/106
B I T MAN
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 B M
40/106
I T
AN
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. 41/106
B I T MAN
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 );
42/106
B I T MAN
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
43/106
B I T MAN
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
44/106
B I T MAN
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ű) 45/106
B I T MAN
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!
46/106
B I T MAN
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)
47/106
B I T MAN
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),
);
48/106
B I T MAN
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; 49/106
B I T MAN
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
50/106
Bolt adatbázis (példa)
B I T MAN
Bolt adatbázis (példa)
ER modell
Táblák létrehozása
Táblák módosítása
Adatok
51/106
feltöltése
B I T MAN
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
52/106
Fizmód
B I T MAN
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 – – – – 53/106
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 I T MAN
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
54/106
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 I T 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
55/106
Kategória
Termék
Kkód Név
Kategória Tkód Név Ár
Leírás
B I T MAN
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
56/106
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 I T MAN
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 57/106
Cím
Fizmód
B I T MAN
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
58/106
Fizmód
B I T MAN
Bolt adatbázis (példa)
ER modell
Táblák létrehozása
Táblák módosítása
Adatok
59/106
feltöltése
B I T MAN
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));
60/106
B I T MAN
Táblajáték – Kategória – Ellenőrzés Describe Kategória;
Show create table Kategória;
61/106
B I T MAN
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));
62/106
B I T MAN
Táblajáték – Termék – Ellenőrzés (1) Describe termék;
63/106
B I T MAN
Táblajáték – Termék – Ellenőrzés (2) Show create table termék;
64/106
B I T MAN
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));
65/106
B I T MAN
Táblajáték – Vásárló – Ellenőrzés Describe Vásárló;
66/106
B I T MAN
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)); 67/106
B I T MAN
Táblajáték – Vásárlás
68/106
B I T MAN
Táblajáték – Vásárlás – Ellenőrzés
69/106
B I T MAN
Táblajáték – Vásárlás – Ellenőrzés
70/106
B I T MAN
Bolt adatbázis (példa)
ER modell
Táblák létrehozása
Táblák módosítása
Adatok
71/106
feltöltése
B I T MAN
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
72/106
Fizmód
B I T MAN
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! 73/106
B I T MAN
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
74/106
B I T MAN
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
75/106
Fizmód
Fkód Leírás
B I T MAN
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));
76/106
B I T MAN
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);
77/106
B I T MAN
Bolt adatbázis (példa)
ER modell
Táblák létrehozása
Táblák módosítása
Adatok
78/106
feltöltése
B I T MAN
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');
79/106
B I T MAN
Adatbevitel – Fizetés Adatbevitel fájlból: LOAD DATA LOCAL INFILE ’c:/Fizmodok.txt’ INTO TABLE Fizetés;
80/106
B I T MAN
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'); 81/106
B I T MAN
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');
82/106
B I T MAN
Termék tábla lista
83/106
B I T MAN
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); 84/106
B I T MAN
Vásárló tábla lista
85/106
B I T MAN
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'); 86/106
B I T MAN
Vásárlás tábla lista
87/106
B I T MAN
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;
88/106
B I T MAN
Bolt adatbázis (példa)
ER modell
Táblák létrehozása
Táblák módosítása
Adatok
89/106
feltöltése
Táblák újabb módosítása
B I T MAN
Ö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
90/106
B I T MAN
Ö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? 91/106
B I T MAN
Adatbázis Rendszerek II. Ellenőrző kérdések
B I T MAN
92/106
B I T MAN
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; 93/106
B I T MAN
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
94/106
B I T MAN
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 95/106
B: Nem
B I T MAN
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 96/106
B: Nem
B I T MAN
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 97/106
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 I T MAN
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 98/106
Parancsok:
B: select E: update H: delete
C: grant F: modify I: revoke
B I T MAN
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
99/106
B: rekord D: adatbázis
B I T MAN
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
100/106
8. TABLE Fizetés;
B I T MAN
Ellenőrző kérdések 9. 14. Az ER->Relációs modell konverziójánál hány darab tábla keletkezik? Kód
Név
Név
Azon Vásárlás
Termék Ár
A: 2 B: 3 C: 4 D: 5 101/106
Leírás Méret
Vásárló
Darab
Dátum
Lakcím
FizMód
Ir.sz.
Város
Cím
B I T MAN
Ellenőrző kérdések 10. 15. Az ER->Relációs modell konverziójánál hány darab mező lesz a Termék táblában? Kód
Név
Név
Azon Vásárlás
Termék Ár
A: 3 B: 4 C: 5 D: 6 102/106
Leírás Méret
Vásárló
Darab
Dátum
Lakcím
FizMód
Ir.sz.
Város
Cím
B I T MAN
Ellenőrző kérdések 11. 16. Az ER->Relációs modell konverziójánál hány darab mező lesz a Vásárlás táblában? Kód
Név
Vásárlás
Termék Ár
A: 2 B: 3 C: 4 D: 5 103/106
Leírás Méret
Név
Azon
Vásárló
Darab
Dátum
Lakcím
FizMód
Ir.sz.
Város
Cím
B I T MAN
Ellenőrző kérdések 12. 17. Az ER->Relációs modell konverziójánál hány darab mező lesz a Vásárló táblában? Kód
Név
Név
Azon Vásárlás
Termék
Ár
A: 4 B: 5 C: 6 D: 7 E: 8 104/106
Leírás Méret
Vásárló
Darab
Dátum
Lakcím
FizMód
Ir.sz.
Város
Cím
B I T MAN
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
105/106
B I T MAN
VÉGE V ÉGE 106/106
B I T MAN