MySQL - Structured Query Language
(in. k. minu struktureeritud päringukeel)

teejuht
 
                            1. Sissejuhatus
                            2. Tarkvara installeerimine; serveri käivitamine/seiskamine
                            3. MySQL'i kasutamine
 

1. Sissejuhatus

Kõnealune tarkvara sisaldab nn. andmebaasi serverit ja klienti. Tavaliselt käivitatakse masina boodil muude vaimude seas ka 'mysqld' mis ongi MySQL'i server. Mida töötav MySQL võimaldab on see, et kõik masina kasutajad saavad käivitada programmi 'mysql' ning seejärel esitada päringuid olemasolevatesse andmebaasidesse. Sõltuvalt kasutaja õigustest on tal ka võimalik andmebaase muuta/juurde luua.

Ühesõnaga, et mitte ümber põõsa materdada - MySQL on mõeldud sarnaste probleemide lahendamiseks milleks Access või FoxPro.

Näiteks kui teil on 1 000 000 inimese andmed esitatud nö. tulpadena:

nimi, perekonnanime, telefon, aadress, sugu, sünniaeg

ja te tahate näha inimeste nimesid kes elavad Tartus, on naissoost ja sündinud liigaastatel, siis on see just õige küsimus esitada MySQL'le.

Võiks küsida, et milleks üldse andmebaasiserver. Võiks ju hoida serveris lihtsalt ühte tekstifaili kus on need samad andmed sees ja kes midagi tahab teada see avab joe's selle faili. Osutub aga, et see on ebaefektiivne:

- halb teha muutusi,
- halb sooritada päringuid

oluline 'drawback' on just kiirus ja mugavus.

PS. Üks oluline asi andmebaaside puhul on nn. relatsioonilised andmebaasid. See tähendab seda, et sisuliselt tervik andmebaas on laiali mitmes failis:

isikuandmed:

nimi, perekonnanimi, isikukood, rahvus

meditsiiniline_rekord:

isikukood, veregrupp, haiguslood

kodaniku_andmed:

haridus, isikukood, sõjaväeline_auaste

Relatsioonilisus ehk seoselisus tähendab seda, et kolm faili on võimalik päringute ajaks ühendada tervikuks kasutades isikukoodi. Ning näiteks küsida, et "Millised on isikute nimed kes on teatud sõjaväelise auastmega ning elavad Tartus kusjuures põevad tõsiseid kroonilisi haigusi ?".
 

2. Tarkvara, serveri käivitamine ja seiskamine

MySQL on porditud mitmetele platvormidele, nagu arvata võib sh. Linux'ile. Mina kasutasin source't ja kompilleerisin ta kohapeal default option'itega. Ja rõõm oli suur kui ta nagu tööle hakkas. Aga teiselt poolt, miks ta ei pidanud hakkama.

Tarkvara on pärit http://www.mysql.com nimeliselt masinast. Seal on ka mitmeid olulise viiteid tutorial'idele.

Installeerimine toimub nagu kirjeldab INSTALL_SOURCE, kui minu puhul oli see nii:

bash# make ./configure --prefix=/usr/local/mysql
bash# make
bash# make install
bash# /usr/local/mysql/bin/mysql_install_db

serveri käivitamine:

bash# /usr/local/mysql/share/mysql/mysql.server start

serveri seiskamine:

bash# /usr/local/mysql/share/mysql/mysql.server stop

Mulle hakkasid silma sellised tutorid:

-
-
 

3. MySQL'i kasutamine

Kui server käib, siis saab seda kasutada programmi 'mysql' abil. Te saate ette uue prompti ja saate teha nt. sellise asja

antud juhul on eesmärk
- luua andmebaas minu_sobrad
- sisestada sinna andmed
- teha päring mis peaks ekraanile tooma kõigi inimeste nimed kes elavad Tartus

Seanss näeb välja nii:

ut:~# mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 10 to server version: 3.22.15-gamma

Type 'help' for help.

mysql> create database minu_sobrad;
Query OK, 1 row affected (0.00 sec)
mysql> use minu_sobrad
Database changed
mysql> create table kontakt (nimi varchar (15), elukoht varchar (20), vanus int);
Query OK, 0 rows affected (0.02 sec)
mysql> show columns from kontakt1;
+---------+-------------+------+-----+---------+-------+
| Field   | Type        | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| nimi    | varchar(15) | YES  |     | NULL    |       |
| elukoht | varchar(20) | YES  |     | NULL    |       |
| vanus   | int(11)     | YES  |     | NULL    |       |
+---------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)

mysql> insert into kontakt values ('Hunt Kriimsilm', 'Tartu', 45);
Query OK, 1 row affected (0.00 sec)
mysql> insert into kontakt values ('Tripp', 'Viljandi', 36);
Query OK, 1 row affected (0.00 sec)
mysql> insert into kontakt values ('Jänku', 'Tartu', 76);
Query OK, 1 row affected (0.00 sec)
mysql> insert into kontakt values ('Ahv', 'Tartu', 16);
Query OK, 1 row affected (0.00 sec)
mysql> insert into kontakt values ('Haista', 'Tallinn', 101);
Query OK, 1 row affected (0.00 sec)

mysql> select * from kontakt
    -> ;
+----------------+------------+--------+
| nimi           | elukoht    | vanus  |
+----------------+------------+--------+
| Hunt Kriimsilm | Tartu      |    45  |
| Tirpp          | Viljandi   |    36  |
| Jänku          | Tartu      |    76  |
| Ahv            | Tartu      |    16  |
| Haista         | Tallinn    |   101  |
+----------------+------------+--------+
3 rows in set (0.00 sec)

mysql> select * from kontakt where (elukoht = 'Tartu');
+----------------+---------+-------+
| nimi           | elukoht | vanus |
+----------------+---------+-------+
| Hunt Kriimsilm | Tartu   |    45 |
| Jänku          | Tartu   |    76 |
| Ahv            | Tartu   |    16 |
+----------------+---------+-------+
2 rows in set (0.00 sec)

mysql> quit
Bye
 

Siin pange tähele, et käsud lõppevad semikooloniga!

Nagu ma praegu aru saan tehakse käsuga 'create database andmebaasi_nimi' tegelikult kataloog '/usr/local/mysql/var/andmebaasi_nimi'; ning käsuga 'create table tabeli_nimi' tekitatakse vastavasse kataloogi kolm andmetesse puutuvat faili:

tabeli_nimi.ISD
tabeli_nimi.ISM
tabeli_nimi.frm

;ja käsuga 'use andmebaasi_nimi' tehakse andmebaas aktiivseks.
 

ggg