teejuht
1. Sissejuhatus
2. Tarkvara installeerimine; serveri käivitamine/seiskamine
3. MySQL'i kasutamine
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:
-
-
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