2. Lecke: MySQL-adatbázisok kezelése
2.7 MySQL adatbázis-kezelő rendszer
Az adatbázis-rendszerek második eleme az adatbázis-kezelő rendszer. Tan-anyagunkban az ingyenesen használható DBMS-ek között, napjainkban talán legleterjedtebbnek nevezhető MySQL 5.5.0 verzióját, annak Windows operációs rendszeren futó változatát fogjuk használni.
A MySQL eredetileg a svéd MySQL AB cég terméke. SQL nyelven vezérelhe-tő, hálózati környezetben kiszolgálóként működő, többfelhasználós relációs adatbázis-kezelő rendszer. A szoftver 2010 januárja óta az Oracle tulajdonában van. Kereskedelmi és GPL-licenceléssel is használható. Ingyenes használatának, illetve a PHP-beli integrációjának köszönhetően a webes alkalmazások támoga-tására talán legelterjedtebben használt adatbázis-kezelő rendszer.
Számos platformon, többek között Windows, MAC OS X, Linux, Solaris ope-rációs rendszereken is használható.
http://dev.mysql.com/downloads/mysql/
1. link MySQL letöltése
24 MySQL-adatbázisok kezelése
A MySQL szerver telepítésére nem térünk ki. A szoftver, és dokumentációja letölthető a http://dev.mysql.com/downloads/mysql/ címről.
Amennyiben az olvasó később adatbázis-háttérrel rendelkező webalkal-mazások készítését tervezi, érdemes megfontolni valamilyen WAMP-csomag letöltését és telepítését.
A WAMP csomagok Windows platformon futó Apache webszervert, PHP-t, és MySQL-szervert telepítenek gépünkre. Ilyen csomag az úgynevezett EasyPHP, ami az alábbi címen férhető hozzá:
http://www.easyphp.org/download.php
http://www.easyphp.org/download.php
2. link EasyPHP letöltése
2.7.1 Az SQL
A relációs adatbázis-kezelő rendszerek napjainkra szabvánnyá vált nyelve az SQL (Structured Query Language), amely az IBM által, az 1970-es évek elején kifejlesztett SEQUEL (Structured English Query Language) utóda.
Az SQL-t 1986-ban az ANSI (Amerikai Nemzeti Szabványügyi Intézet – Ame-rican National Standards Institute), később pedig az ISO is hivatalos szabvánnyá minősítette. Napjainkra szinte minden relációs adatbázis-kezelő szoftvert gyár-tó cég terméke, így értelemszerűen a MySQL is támogatja.
Az ANSI- és ISO-szabványok biztosítják a nyelv egységességét, a különböző gyártók implementációi, az úgynevezett SQL-nyelvjárások azonban mégis mu-tatnak kisebb-nagyobb eltéréseket. Tananyagunkban természetesen a MySQL adatbázis-kezelő rendszer vezérlésére alkalmas SQL változatot mutatjuk be.
Az SQL-ben úgynevezett SQL-mondatok formájában fogalmazhatunk meg egy-egy adatbázis kezelő parancsot. Az nyelv négy nagyobb résznyelvből tevő-dik össze.
MySQL-adatbázisok kezelése 25
Az SQL DDL (Data Definition Language = Adatdefiníciós Nyelv) tartalmazza adatszerkezetek létrehozását biztosító nyelvi elemeket. A DDL segítségével új adatbázisokat, és táblákat hozhatunk létre, de módosítjuk, illetve törölhetjük is azokat.
A DCL-t (Data Control Language = Adatelérést Vezérlő Nyelv) résznyelvbe azokat nyelvi elemeket sorolják, amelyekkel az adatbázis-kezelő rendszer mű-ködését szabályozhatjuk.
SQL DML (Data Manipulation Language = Adatmanipulációs Nyelv) biztosít-ja az új rekordok beszúrásának, az adatok megváltoztatásának és törlésének lehetőségét. A DML teszi lehetővé, hogy az adatbázis tartalma bármikor változ-tatható legyen.
SQL DQL (Data Query Language = Adatlekérdező Nyelv) az SQL adatlekérde-ző résznyelve, amely az adatbázisokban tárolt adatok kiolvasását teszi lehetővé.
A DCL-t gyakran tekintik a DDL, a DQL-t pedig a DML részének, így egyes irodalmakban az SQL-t csak két résznyelvre DDL-re és DML-re osztják.
Még előző tananyagunkban elsősorban a DCL és DDL résznyelvekkel fogla-koztunk, addig jelen tananyagunkban a DQL és DML résznyelvekre koncentrá-lunk.
2.7.2 Az SQL nyelvtana
Az SQL-ben, a számítógép programozás során leginkább alkalmazott proceduláris programozási nyelvekkel szemben nem a feladat megoldását kell megfogalmaznunk, hanem a várt eredményt kell meghatároznunk a nyelv esz-közeinek felhasználásával. E tekintetben az SQL az úgynevezett deklaratív prog-ramozási nyelvekhez hasonló.
Az SQL mondatok mindig egy paranccsal kezdődnek, és pontosvesszővel (;) fejeződnek be.
A parancsot meghatározott sorrendben, különböző kötelező és opcionális elemek követhetik:
az SQL fenntartott szavai,
tábla-, mező- és változóazonosítók,
értékek, literálok,
kifejezések,
függvényhívások.
26 MySQL-adatbázisok kezelése
SQL-mondatok tördelése
Az SQL mondatok szóhatárokon tetszőleges számú sorba tördelhetők. A mondat végét nem a sortörés, hanem pontosvessző jelzi.
A mondatokat, egyenként vagy kötegelten is végrehatathatjuk a MySQL-szerverrel. Utóbbi esetben egy-, vagy többsoros megjegyzések is elhelyezhetők a szövegben. Az egy soros megjegyzések kettőskereszt (#) karakterrel kezdőd-nek, a többsoros megjegyzéseket pedig /* */ jelek közé zárjuk.
Kis- és nagybetűk
Az értelmező nem tesz különbséget a kis- és nagybetűk között, de az adat-bázis önálló állományként tárolódó elemeinek azonosítói (például táblák) az operációs rendszertől függően kivételt jelenthetnek.
Szövegek
A szöveg literálokat a MySQL-ben is egyszeres vagy dupla aposztrófok közé kell zárni.
Szintaktikai leírás
Az SQL-mondatok szintaktikáját, az egyes parancsok specifikációját az alábbi formában fogjuk ismertetni (az itt olvasható elemek nem részei az SQL nyelvnek, csupán a szintaktikai leírás egyes részeinek használati módjára utal-nak):
NAGYBETÜKKEL írt szavak: leírásban megadott formában használható nyelvi elemek
[szögletes zárójelben megadott szöveg]: opcionális nyelvi elem. A nem szögletes zárójelek között lévő nyelvi elemek használata kötelező.
| függőleges vonal (cső karakter) két szöveg között: választási kötele-zettség. A cső karakterrel elválasztott elemek közül kizárólag egy hasz-nálható.
Dőlt betűk: értelemszerűen helyettesítendő szöveg.
Sortörés jel (): a csak több sorban elférő szintaktikai leírások logikai összekapcsolására használjuk!
Az SQL-mondatok és parancsok formai leírása általában több opcio-nális (elhagyható) elemet is tartalmaz. Az opcioopcio-nális elemek haszná-latát az határozza meg, hogy milyen eredményt szeretnénk kapni.
MySQL-adatbázisok kezelése 27
Fontos azonban tudnunk, hogy a leírásban feltüntetett elemek sor-rendje általában kötött. A használt opciókat a specifikációnak megfe-lelő sorrendben kell szerepeltetnünk.
Az alábbi szintaktikai leírás a felhasználó jelszavának megváltoztatására al-kalmas DCL-mondat általános formátumát határozza meg. A [FOR user_azonosító] szögletes zárójele jelzi, hogy a közrezárt rész használa-ta nem kötelező, a user_azonosító szó dőlt betűje pedig arra utal, hogy a szó helyére egy felhasználó azonosítójának kell kerülnie. A harmadik, és negyedik sor elején lévő cső karakter jelzi, hogy az SQL-mondatban a 2., vagy a 3., vagy pedig a 4. sorban leírt részt kell használni.
SET PASSWORD [FOR user_azonosító] = PASSWORD('jelszó')
| OLD_PASSWORD('jelszó') | 'kódolt jelszó'
A fenti szintaktikai leírásnak megfelel például az alábbi SQL-mondat:
SET PASSWORD = PASSWORD(’sosemtudodmeg’)