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