Adatbá Adatbázis rendszerek I mySQL kezelé kezelése
Dr. Ková Kovács
MEME- GEIAL
Lá László szló
DBMS alternatí alternatívák problé probléma mé mérete otthoni feladat
adatkezelő adatkezelő állomá llomány kezelé kezelés Excel kezelé kezelés
egyé egyéni vá vállalkozá llalkozás xBase/Access xBase/Access kis vá vállalat
mySQL Oracle XE
Közép vá vállalat
nagyvá nagyvállalat
SQLServer Oracle DB2
nemzetkö nemzetközi cé cég
Terradata
GEIAL Kovács László
1
mySQL áttekinté ttekintése mySQL: mySQL: nyí nyílt felü felületű letű adatbá adatbáziskezelő ziskezelő-rendszer (SUN) típusai:
Community Server (ingyenes) Enterprise Server (fizető (fizetős)
letö etölté ltési hely: http: http://dev.mysql.com //dev.mysql.com/downloads dev.mysql.com/downloads
GEIAL Kovács László
http://www.mysql.com/whyhttp://www.mysql.com/why-mysql/marketshare/ mysql/marketshare/
mySQL installá installáció ció
GEIAL Kovács László GEIAL Kovács László
2
mySQL installá installáció ció
GEIAL Kovács László
mySQL installá installáció ció
Instance: Instance: futó futó DBMS
Adatbá Adatbázis DB1 Adatbá Adatbázis DB2
Szolgá Szolgáltatá ltatás (mySQL (mySQL) mySQL) net start mySQL
net stop mySQL
Állomá llományok, kataló katalógusok Bin (->Path) Path) Data Docs Examples Include lib Share
GEIAL Kovács László
3
mySQL működése DBMS mű működése
GEIAL Kovács László
www.akadia.com
mySQL működése myISAM tábla jellemzé jellemzése Az alapé alapértelmezé rtelmezési tá tábla tá tárolá rolási mó mód CREATE TABLE tnev (mezo tipus intfelt, intfelt,…) TYPE=myISAM TYPE=myISAM; myISAM; Minden adatbá adatbázis egy kü külön kataló katalógus Minden t tá ábla FRM : MYD : MYI :
egy vagy tö több állomá llomány tá ábla szerkezet leí t leíró adatok indexek
Belső Belső tárolá rolási mó mód: -
fixed rekordmé rekordméret változó ltozó rekordmé rekordméret (TEXT, BLOB kü külön) tömörített (READONLY)
Táblabla-szintű szintű zárolá rolás
GEIAL Kovács László
4
mySQL működése HEAP tábla jellemzé jellemzése A tá tábla tartalma a memó memóriá riában foglal helyet CREATE TABLE tnev (mezo tipus intfelt, intfelt,…) TYPE=HEAP; TYPE=HEAP; Elő Előnyö nyök:
- gyorsabb mó módosí dosítás - szekvenciá szekvenciális keresé keresés gyorsabb - felé felépítés gyorsabb
Hátrá trányok:
- tempor temporá ális - lassabb az összetett leké lekérdezé rdezés - kevesebb mező mezőtípust tá támogat
Indexelé Indexelés lehetsé lehetséges, de csak HASH indexet generá generál
GEIAL Kovács László
mySQL működése innoDB tábla jellemzé jellemzése A legnagyobb integritá integritáns védelmet biztosí biztosítja CREATE TABLE tnev (mezo tipus intfelt, intfelt,…) TYPE=innoDB TYPE=innoDB; innoDB; A tá táblá blák együ együtt tá tároló rolódnak (tablespace (tablespace) tablespace) Tábla szerkezeti ré része: FRM : tá tábla szerkezet leí leíró Tábla tartalom (együ (együtt) IBDATAn : tartalom, indexek Támogatott szolgá szolgáltatá ltatások: - rekord szintű szintű zárolá rolás - ACID elvek - idegen kulcs
GEIAL Kovács László
5
mySQL haszná használata Kliens oldali elemek: mysql parancsparancs-felü felület -u -D -h -X -e -p
nev : felhaszná felhasználó neve adatbá ázis neve nev : adatb nev : host neve : XML kimenet parancs : parancs végrehajtá grehajtás ertek: ertek: jelszó jelszó megadá megadása
Batch file futtatá futtatása: os> os> mysql … < file.txt mysql> mysql> source file.txt
GEIAL Kovács László
mySQL haszná használata Kliens oldali elemek: mysql query browser
GEIAL Kovács László
6
mySQL haszná használata Alapparancsok Parancsfelü Parancsfelület indí indítása: Kliens csatlakozá csatlakozása: os> os> mysql –host H –u U -p Adatbá Adatbázisok kezelé kezelése: Adatbá Adatbázis lé létrehozá trehozása: sql> sql> CREATE DATABASE db Adatbá Adatbázis megszü megszünteté ntetése: sql> sql> DROP DATABASE db Adatbá Adatbázis kivá kiválasztá lasztása: sql> sql> USE db1 Adatbá Adatbázisok adatainak leké lekérdezé rdezése: sql> sql> SHOW DATABASES Aktuá Aktuális adatbá adatbázis neve: sql> sql> SELECT DATABASE() Táblá blák kezelé kezelése: Táblanevek listá listája: sql> sql> SHOW TABLES Egy tá tábla felé felépítésének kijelzé kijelzése: sql> sql> DESCRIBE tá tábla GEIAL Kovács László
mySQL haszná használata Speciá Speciális tá tábla lehető lehetőségek A tá tábla lehet ideiglenes élettartalmú lettartalmú CREATE TABLE TEMPORARY tnev (…) A megszorí megszorításokhoz azonosí azonosító név rendelhető rendelhető CREATE TABLE … (mezo tipus CONSTRAINT mnev kifejezes) kifejezes) Automatikus érté rtékadá kadás kulcs mező mezőknek CREATE TABLE … (mezo tipus AUTO_INCREMENT ..) Create table t1 (a int auto_increment primary key, b char(3)); Insert into t1(b) values (‘ (‘szoveg’ szoveg’); Tábla teljes tö törlé rlése: TRUNCATE TABLE tabla GEIAL Kovács László
7
mySQL haszná használata Felhaszná trehozá Felhasználói account létrehoz ása: sql> > CREATE USER unev IDENTIFIED BY jelszo sql A felhaszná felhasználó jogait explicite meg kell adni Teljes jog: GRANT ALL ON *.* TO nev@host nev@host Adatbá Adatbázis szintű szintű jog: GRANT ALL ON db.* TO nev@host nev@host Tábla szintű szintű művelet: GRANT ALL ON db.tabla TO nev@host nev@host Mező Mezőszintű szintű műveletek: GRANT SELECT(mező SELECT(mező), INSERT(mező INSERT(mező) ON db.tabla TO nev@host nev@host Jogok és privilé privilégiumok adható adhatók ki
GEIAL Kovács László
mySQL haszná használata Index lé létrehozá trehozása: CREATE INDEX inev ON tabla (mezo1 ASC|DESC,..) USING BTREE | HASH | RTREEE
BTREE create create Select Select Select Delete
HASH
RTREE
table ss2 (a int, int, b int, int, c char(10)); index i2 on ss2 (a,b (a,b); a,b); count(*) from ss2 where b=5; // 00.64 00.64 count(*) from ss2 where a=5; // 00 00.00 .00 count(*) from ss2 where a+b=10 a+b=10 // 00.68 00.68 fropm ss2 where b<5; // 27.10
sec sec sec sec
Index tö törlé rlése: DROP INDEX nev GEIAL Kovács László
8
mySQL haszná használata Karakterké Karakterkészlet, rendezé rendezési sorrend
CHARACTER SET: ABC, betű betűkészlet (cp1250, latin2,… latin2,…) COLLATION: rendezé rendezési sorrendisé sorrendiség
Adatbá Adatbázis, tá tábla és mező mező szinten lehet beá beállí llítani
CREATE TABLE tnev () CHARACTER SET nev COLLATE nev Create table ss1 (a int, b char(10)) char(10)) CHARACTER SET cp850 collate cp850_bin cp850_bin; bin; Konstans karaktertí karaktertípusá pusának beá beállí llítása: _tipus _tipus’ tipus’érté rték’
GEIAL Kovács László
mySQL haszná használata Karakterké Karakterkészlet, rendezé rendezési sorrend
create create insert insert
table ss5 (a int, int, b char(20)) character set cp850; table ss6 (a int, int, b char(20)) character set latin2; latin2; into ss5 values (1,'aá (1,'aáeéiíoóöő óöőuúüű úüű'); -- hiba into ss6 values (1,'aá (1,'aáeéiíoóöő óöőuúüű úüű'); -- rendben
select * from ss6 order by b collate latin2_hungarian_ci latin2_hungarian_ci select * from ss6 order by b collate latin2_bin latin2_bin
GEIAL Kovács László
aáeéií álom aroma élet eredő eredő írhat itat kelet üzlet
aroma aáeéií eredő eredő itat kelet álom élet írhat üzlet
9
mySQL haszná használata Gyá Gyári fü függvé ggvények Dátum kezelő kezelő függvé ggvények Select dayname dayname( (convert( convert(‘19681968-1111-12’ 12’)); select datediff(curdate(),convert('1968 datediff(curdate(),convert('1968-1111-12',datetime)); ',datetime)); Szö Szöveg kezelő kezelő függvé ggvények Select upper( upper(substr( substr(rpad( rpad(nev),2)); nev),2)); Update ugyfelek set lakcim= lakcim=replace( replace(lakcim, lakcim,’Bp’ Bp’,’Budapest’ Budapest’); Szá Számkezelő mkezelő függvé ggvények Select floor (1 + rand()*89) rand()*89) Select power(2,6) power(2,6)
GEIAL Kovács László
10