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

Hasonló dokumentumok
Adatbázis rendszerek Gy: MySQL alapok

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

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

Adatbázis Rendszerek II. 3. SQL alapok

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

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-kezelés. Harmadik előadás

Adatbázis rendszerek SQL nyomkövetés

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

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

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. 2. Ea: Gyakorló környezet

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 Rendszerek II. 2. Gyakorló környezet

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

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

Adatbázisok* tulajdonságai

Bevezetés: az SQL-be

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

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

Adattípusok. Max. 2GByte

Adattípusok. Max. 2GByte

5. Gyakorlat. 5.1 Hálós adatbázis modell műveleti része. NDQL, hálós 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

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:

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

Adatbázis-kezelés alapjai 1. Ea: Kirakós. Adatbázis-kezelési alapok

Adatbázis Rendszerek II. 3. PLSQL alapok 92/1B IT MAN

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-lekérdezés. Az SQL nyelv. Makány György

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

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. 5. PLSQL Csomagok 16/1B IT MAN

Adatbázis rendszerek Ea: Kirakós. Adatbázis-kezelési alapok

ADATBÁZIS RENDSZEREK I BEADANDÓ

BGF. 4. Mi tartozik az adatmodellek szerkezeti elemei

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

Adatbázis rendszerek 1. 5.Gy: ER relációs konverzió

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

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

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

Adatbáziskezelés - SQL. Forrás: dr. Kovács László: Adatbázisok tervezésének és kezelésének módszertana Computerbooks

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

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.

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

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

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 objektum fogalma

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

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

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

Adatbázis, adatbázis-kezelő

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

Adatbázis-kezelés. 2. Ea: Kirakós (2013) Adatbázis-kezelési alapok. v: Szűcs Miklós - ME, ÁIT. 1.o

Java és web programozás

Az SQL adatbázisnyelv: DML

Webfejlesztés 4. alkalom

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

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

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

GEIAL Kovács László. GEIAL Kovács László GEIAL Kovács László

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

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

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

SQL parancsok feldolgozása

Adatbázis tartalmának módosítása

ALAPOK. 0 és 255 közé eső számértékek tárolására. Számértékek, például távolságok, pontszámok, darabszámok.

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

LBRA6i integrált rendszer

Java és web programozás

Elemi alkalmazások fejlesztése IV.

Adatmodellezés. 1. Fogalmi modell

RELÁCIÓS ADATBÁZISSÉMÁK. Egyed-kapcsolat modellről átírás

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

ADATBÁZISKEZELÉS ADATBÁZIS

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

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 Ea: Eskúel. Structured Query Language

Vizuális programozás gyakorlat

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

STRUCTURED QUERY LANGUAGE(SQL) - ALAPOK

Adatbázis tanfolyam 1. Adatbázis tervezés. Modellezés, példák

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

Fogalmak: Adatbázis Tábla Adatbázis sorai: Adatbázis oszlopai azonosító mező, egyedi kulcs Lekérdezések Jelentés Adattípusok: Szöveg Feljegyzés Szám

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

OO PDO. Tehát PDO használatával, könnyen átállhatunk egy másik adatbáziskezelőre, anélkül hogy a kódot teljes egészében újraírnánk.

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

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:

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

B IT MAN 65/1. Adatbázis Rendszerek II. Ellenőrző kérdések APLSQL B IT MAN. v:

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

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

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

Adatbáziskezelés. Indexek, normalizálás NZS 1

Adatbázis-kezelés. 3. Ea: Viszonyított betűszámtan (2013) Relációs algebra alapok (átgondolt verzió) v: Szűcs Miklós - ME, ÁIT. 1.

Átírás:

Adatbázis Rendszerek II. 3. Ea: MySQL alapok 86/1 B IT v: 2016.02.16 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 Bolt adatbázis (példa) 86/2

MySQL letöltése (1) XAMPP http://www.apachefriends.org 86/3

MySQL letöltése (2) 86/4

XAMPP telepítése (1) 86/5

XAMPP telepítése (2) 86/6

XAMPP telepítése (3) 86/7

XAMPP telepítése (4) 86/8

XAMPP Control Panel 86/9

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 Bolt adatbázis (példa) 86/10

http://127.0.0.1 86/11

MySQL root jelszó beállítás (1) 86/12

MySQL root jelszó beállítás (2) Újraindítás! 86/13

MySQL indítófájl készítés 86/14

Mysql.bat 86/15

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 Bolt adatbázis (példa) 86/16

MySQL parancssoros felület 86/17

Néhány alapparancs Show databases; Select version(), current_date; 86/18

Néhány hasznos parancs Parancssor >select database(); Parancssor >show tables; >use bolt; >select database(); Parancssor >describe vásárlás; 107/19 86/19

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 Bolt adatbázis (példa) 86/20

Relációs adatmodell - Alapok Építő elemek: MEZŐ REKORD RELÁCIÓ ADATBÁZIS Kód Név A3 Kovács B 14 S1 Dolgozó Munkakör Munkaidő 86/21 Szupercég

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. 86/22

Adatbázisok Create database próba; Use próba; Drop database próba; 86/23

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 Bolt adatbázis (példa) 86/24

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. 86/25 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.

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. 86/26

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 Termék Vásárló Ár Leírás Méret Dátum Darab Lakcím FizMód 86/27

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ő 86/28 Azonosító Név Évfolyam Osztály 001 Kati 11 A 002 Tibi 12 B

A relációk jellemzői 2. Egy relációra vonatkozó követelmények: 86/29 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.

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 86/30 Elsődleges kulcs

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 1 ABC-123 14.02.21 2 14.02.16 86/31 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

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 1 ABC-123 14.02.21 2 EIS-104 14.02.16 86/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

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 Sorszám Rszám Dátum Útvonal Autó Rendszám Típus Fogyaszt Az útnyilvántartásnak autóhoz kell tartoznia, de egy autóhoz több útnyilvántartás is tartozhat. Km Sorszám Rszám Dátum 1 ABC-123 14.02.21 2 ABC-123 14.02.16 86/33 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

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. 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 T03 Tea 550 T04 Só 145 TKód T01 T04 VKód V01 V01 V02 Peti Só u 32 V03 Miki Bő u 17 V04 Évi Lé u 46 T02 V03 T04 V01 T03 V04 86/34 T02 V04

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ó. 86/35

Index kulcsok 2. Index tábla Rendszám Kód ABC123 A04 BER666 A01 CDR420 A06 DGZ531 A03 LEM597 A05 RTW285 A02 Autó tábla Kód Rendszám Típus Szín A01 BER666 Fiat zöld A02 RTW285 Opel kék A03 DGZ531 Suzuki kék A04 ABC123 Mercedes fekete A05 LEM597 Opel fehér A06 CDR420 Nissan piros Index kulcs 86/36

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 86/37

Az adatintegritás szintjei Mező szintű megszorítások Rekord szintű megkötések Reláció szintű előírások Adatbázis szintű ellenőrzések Kód Név A3 Kovács B 14 S1 Dolgozó Munkakör Munkaidő Szupercég 86/38

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. 86/39

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. 86/40

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

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. 86/42

Adattáblák létrehozása (1) Create table táblanév( oszlopnév mezőtípus definíciók, oszlopnév mezőtípus definíciók,... kulcsok, indexek, megszorítások ); Ékezetes mezőnevek? Inkább ne használjuk! Not null, default, primary key, auto_increment, unique, comment 86/43

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 86/44

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 86/45

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ű) 86/46

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! 86/47

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) 86/48

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), ); 86/49

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; 86/50

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 Bolt adatbázis (példa) 86/51

Bolt adatbázis (példa) ER modell Táblák létrehozása Adatok feltöltése 86/52

MINIBOLT ER modell Kkod Nev Tkod Nev Ar Kategoria K-T Termek Leiras Sorszam Vasarlas Idopont Nev Darab Fkod Leiras Vasarlo V-F FizModok VID Cim 86/53

MINIBOLT Táblák létrehozási sorrendje Kkod Nev Tkod Nev 2 Ar Kategoria 1 4 K-T Sorszam Nev 5 Termek Vasarlas Vasarlo Leiras Idopont Darab V-F 3 Fkod Leiras FizModok VID Cim 86/54

MINIBOLT Struktúra Kategoria Kkod Nev Termek Kategoria Tkod Nev Ar Leiras Vasarlas Tkod Sorszam Idopont Darab VID Vasarlo FizModok VID Nev Cim Fizmod Fkod Leiras 86/55

Bolt adatbázis (példa) ER modell Táblák létrehozása Adatok feltöltése 86/56

Órai feladatok 1. Nézzük meg, milyen adatbázisok léteznek: Show databases; Ha létezik bolt adatbázis, töröljük le: Drop database bolt; Hozzuk létre a bolt adatbázist: Create database bolt; Lépjünk be az adatbázisba: Use bolt; 86/57

Órai feladatok 1. Hozzuk létre a táblákat: Create table Kategoria( Kkod char(3) primary key, Nev char(20)); Create table Termek( Tkod char(3) primary key, Nev char(20), Ar numeric(6), Leiras char(20), Kategoria char(3) not null references Kategoria); Create table FizModok ( Fkod tinyint(1) primary key, Leiras varchar(20) not null, Unique (Leiras) ); 86/58

Órai feladatok 1. Hozza létre a MiniBolt adattábláit: Create table Vasarlo( VID char(3) primary key, Nev char(20), Cim char(20), Fizmod char(4)); Create table Vasarlas( Sorsz numeric(5), Datum date, Tkod char(3) not null references Termek, Darab numeric(4), VID char(3) not null references Vasarlo, unique (Sorsz, Datum) ); 86/59

Órai feladatok 2. Vigyük fel az alábbi rekordokat: insert into Kategoria values('k01', 'Kaja'); insert into Kategoria values('k02', 'Pia'); insert into Kategoria values('k03', 'Ruha'); insert into Kategoria values('k04', 'Egyéb'); insert into fizmodok values (1, 'Bankkártya'); insert into fizmodok values (2, 'Készpénz'); insert into fizmodok values (3, 'Átutalás'); insert into fizmodok values (4, 'Utánvét'); 86/60

Órai feladatok 2. Vigyük fel az alábbi rekordokat: insert into Vasarlo values('v01', 'Kék Alma', 'Mc. Kék u.12', 'kp'); insert into Vasarlo values('v02', 'Zöld Galamb', 'Mc. Hó u.72', 'atut'); insert into Vasarlo values('v03', 'Fekete Farkas', 'Mc. Vas u.25', 'bkar'); insert into Vasarlo values('v04', 'Kovács Éva', 'Eger. Lap u.4', 'bkar'); insert into Vasarlo values('v05', 'Kis Béla', 'Eger. Bé u.9', 'kp'); insert into Vasarlo values('v06', 'Kis Jenő', 'Eger. Cé u.11', 'atut'); insert into Vasarlo values('v07', 'Kis Noé', 'Eger. Cé u.11', 'kp'); insert into Vasarlo values('v08', 'Kis Tas', 'Eger. Cé u.11', 'bkar'); insert into Vasarlo values('v09', 'Hó Manó', 'Nyék. Tó u.74', 'atut'); insert into Vasarlo values('v10', 'Ká Rozi', 'Nyék. Ká u.5', 'kp'); insert into Vasarlo values('v11', 'Víz Jenő', 'Mc. Út u.39', 'bkar'); 86/61

Órai feladatok 2. Vigyük fel az alábbi rekordokat: insert into Termek values('t01', 'sör', 200, 'világos', 'k02'); insert into Termek values('t02', 'bor', 200, 'vörös', 'k02'); insert into Termek values('t03', 'zsömle', 20, 'kerek', 'k01'); insert into Termek values('t04', 'zsír', 100, 'disznó', 'k01'); insert into Termek values('t05', 'paprika', 100, 'zöld', 'k01'); insert into Termek values('t06', 'csipsz', 300, 'sajtos', 'k01'); insert into Termek values('t07', 'csipsz', 400, 'retkes', 'k01'); insert into Termek values('t08', 'mackó felső', 8000, 'Adidasss', 'k03'); insert into Termek values('t09', 'mackó alsó', 8000, 'Adidasss', 'k03'); insert into Termek values('t10', 'mackó póló', 5000, 'Adidasss', 'k03'); insert into Termek values('t11', 'Fű', 5000, 'KO', 'k04'); insert into Termek values('t12', 'AB2 puska', 5000, 'Mert megérdemled', 'k04'); insert into Termek values('t13', 'Benzin', 350, 'Óccsó', 'k04'); insert into Termek values('t14', 'Nő', 10000, 'Szőke', 'k04'); insert into Termek values('t15', 'Nő', 20000, 'Barna', 'k04'); insert into Termek values('t16', 'Óvszer', 2000, 'Családi csomag', 'k04'); 86/62

Órai feladatok 2. Vigyük fel az alábbi rekordokat: insert into Vasarlas values(1, sysdate, 't14', 1, 'v06'); insert into Vasarlas values(2, sysdate, 't15', 1, 'v06'); insert into Vasarlas values(3, sysdate, 't16', 1, 'v06'); insert into Vasarlas values(4, sysdate, 't03', 4, 'v01'); insert into Vasarlas values(5, sysdate, 't04', 1, 'v01'); insert into Vasarlas values(6, sysdate, 't02', 2, 'v02'); insert into Vasarlas values(7, sysdate, 't06', 2, 'v02'); insert into Vasarlas values(8, sysdate, 't07', 4, 'v02'); insert into Vasarlas values(9, sysdate, 't08', 1, 'v03'); insert into Vasarlas values(10, sysdate, 't09', 1, 'v03'); insert into Vasarlas values(11, sysdate, 't11', 3, 'v04'); insert into Vasarlas values(12, sysdate, 't12', 1, 'v04'); insert into Vasarlas values(13, sysdate, 't13', 100, 'v05'); insert into Vasarlas values(1, sysdate-1, 't12', 1, 'v11'); insert into Vasarlas values(2, sysdate-1, 't16', 5, 'v10'); insert into Vasarlas values(3, sysdate-1, 't16', 1, 'v09'); insert into Vasarlas values(4, sysdate-1, 't03', 6, 'v07'); 86/63

Órai feladatok 3. 1. Készítsen egy UjKategoria nevű tárolt eljárást, mely paraméterként megkapja egy új kategória adatait, és beszúrja a Kategoria táblába. Próbálja ki az eljárást. 2. Készítsen egy KategoriaTorol nevű tárolt eljárást, mely kitöröl egy adott kódú kategóriát. Próbálja ki az eljárást. H 30 3. Készítsen KategoriaDarab nevű tárolt függvényt, mely visszaadja a kategóriák darabszámát. Hívja meg a függvényt. H 37 86/64

Órai feladatok 4. Készítsen egy UjTermek2 nevű tárolt eljárást, mely paraméterként megkapja egy új termék adatait, és beszúrja a termek táblába. Ha már létező kategóriakódot kap paraméterként, írjon üzenetet a képernyőre (Van már ilyen kategória: kkod), és ne hozza létre a kategóriát. H 41 86/65

Órai feladatok 5. Készítsen egy VasarloTorol nevű eljárást,, mely paraméterként megkapja egy vásárló VID-jét. Ha nem létezik a személy, akkor írjon üzenetet a képernyőre (Nem létező személy: VID). H 41 86/66

Órai feladatok 6. Készítsen egy TermekAtlag nevű függvényt, amely kiszámítja, és visszatérő értékként visszaadja a termék táblában lévő termékek átlagárát. Hívja meg a függvényt, használjon a visszatérő értékhez parancssori változót. Írja ki az eredményt a képernyőre. H 37 Hívja meg a függvényt a select paranccsal is! 86/67

Órai feladatok 7. Készítsen egy TermKatAtlag nevű függvényt, amely kiszámítja, és visszatérő értékként visszaadja a termék táblában lévő, adott kategóriájú termékek átlagárát. A függvény bemenő paramétere legyen a kategória neve (nem a kódja!) Ha nem létezik a megadott kategória, írja ki ennek tényét a függvény a képernyőre (Nem létező kategória: KatBe), és adjon vissza 0 értéket! H 37 Hívja meg a függvényt! 86/68

Órai feladatok 8. 1. Készítsen egy OsszParos nevű tárolt eljárást, mely paraméterként megkap egy kezdő és egy végértéket (egész számok), és kiszámítja a két végérték közötti páros számok összegét. H 49 Segítség: - A bemenő paraméterek értékét nem lehet felülírni! - IF MOD(szám, 2) = 0 THEN ha a szám kettővel osztva nullát ad maradékul akkor 86/69

Órai feladatok 9. 1. Készítsen egy tárolt függvényt, mellyel egy paraméterként megadott maximális árú termékek árát egy szintén paraméterként megadott százalékkal megnöveli. A függvény az érintett termékek darabszámát adja vissza eredményül. 2. Gondoskodjon arról (külön eljárások segítségével), hogy egy elhibázott áremelés után, a termékek ára visszaállítható legyen. 86/70

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) 86/71

Adatbázis Rendszerek II. Ellenőrző kérdések 86/72

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; 86/73

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 86/74

Ellenőrző kérdések 3. 5. Melyik paranccsal lehet létrehozni adatbázis táblát? A: BUILD B: CONSTRUCT C: CREATE D: MAKE E: PREPARE 6. Melyik paranccsal lehet törölni adatbázis táblát? A: CLOSE B: DELETE C: CLEAR D: DROP E: KILL 7. Helyes az alábbi parancs? SELECT az, count(*) FROM vásárló WHERE az='az'; A: Igen B: Nem 86/75

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 B: Nem 86/76

Ellenőrző kérdések 5. 10. Melyik kulcsszó hiányzik a parancsokból? SELECT név FROM 1. termék WHERE 2. ár > 1000; UPDATE termék SET 3. 86/77 ár=ár*1.1; 4. SELECT név, ár FROM termék ORD SELECT count(*) FROM vásárló 5. ; SELECT count(*) INSERT 7. 6. név; A FROM vásárló; termék values (23, Retekmag ); A: TO B: SET C: WHERE D: FROM E: GROUP BY F: SHORT BY G: INTO H: ORDER BY I: Nem hiányzik kulcsszó

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: Parancsok: A: insert B: select C: grant D: create E: update F: modify G: drop H: delete I: revoke 86/78

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ő B: rekord C: tábla D: adatbázis 86/79

Ellenőrző kérdések 8. 13. Írja be a hiányzó kifejezéseket! ALTER 1. TABLE vásárló MODIFY COL 2. TINYINT(1) NOT 3. NULL; fizmód ALTER TABLE VÁSÁRLÓ ADD CONS 4. FOREIGN KEY (FIZMÓD) REFE 5. FIZETÉS(FKÓD); LOAD LOCAL INFILE c:/f.txt INTO 6. 7. 8. TABLE Fizetés; 86/80

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 Azon Név Vásárlás Termék Vásárló Ár Leírás Méret Darab Dátum Lakcím FizMód A: 2 B: 3 C: 4 D: 5 86/81 Ir.sz. Város Cím

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 Azon Név Vásárlás Termék Vásárló Ár Leírás Méret Darab Dátum Lakcím FizMód A: 3 B: 4 C: 5 D: 6 86/82 Ir.sz. Város Cím

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 Azon Név Vásárlás Termék Vásárló Ár Leírás Méret Darab Dátum Lakcím FizMód A: 2 B: 3 C: 4 D: 5 86/83 Ir.sz. Város Cím

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 Azon Név Vásárlás Termék Vásárló Ár Leírás Méret Darab Dátum Lakcím FizMód A: 4 B: 5 C: 6 D: 7 E: 8 86/84 Ir.sz. Város Cím

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 86/85

VÉGE VÉGE 86/86