Sunteți pe pagina 1din 6

Administrarea bazelor de date MySQL

din linia de comanda



MySQL este unul dintre cele mai folosite sisteme de gestiune a bazelor de date
client-server, fiind utilizat deseori n combinaie cu scripturi PHP. Spre deosebire de
lucrul cu alte baze de date, care presupune utilizarea unor biblioteci suplimentare (.dll),
operarea cu baze de date MySQL este implicit inclus funcional n motorul
interpretorului PHP (built-in).
Operatiile care se desfasoara cel mai adesea intr-un sistem de gestiune a bazelor de
date sunt:
- conectarea la server;
- afisarea bazelor de date existente;
- selectarea unei baze de date cu care trebuie sa se lucreze;
- afisarea tabeleor continute intr-o baza de date;
- crearea unei baze de date;
- crearea tabelelor din interiorul unei baze de date si precizarea campurilor
continute in acele tabele;
- popularea tabelelor cu date;
- inserarea, regasirea, modificarea sau stergerea datelor din tabele;
- efectuarea unor interogari asupra datelor cuprinse in tabele;
- deconectarea de la serverul de baze de date.
Conectarea la MySQL

Conectarea clientului la serverul MySQL implic o comand de genul (tastat la
prompter-ul sistemului de operare, in directorul mysql\bin):
mysql h hostname u username p
unde:
-hostname este numele sau adresa IP a calculatorului pe care ruleaz serverul
MySQL. Dac programul client ruleaz pe acelai calculator ca i programul server,
optiunea h hostname poate fi omis. Nu exist nici o legtur ntre numele user-ului de
conectare la serverul (Linux sau Windows) pe care este instalat MySQL-ul i numele de
user MySQL.
-username este numele de user.
-opiunea p cere user-ului care se conecteaz s introduc parola corespunztoare
(va apare un prompt pentru parol).
Dup instalare, un user implicit este creat pentru conectare (pentru host-ul pe care
este instalat serverul MySQL, respectiv pentru un host-client la distan), fr nume i
fr parol. n acest caz conectarea (de pe host-ul local) se face tastnd doar comanda
mysql fr parametrii (sub Linux) sau lansnd mysql.exe (sub Windows).
n cazul unei conectri reuite, programul client MySQL va afia prompter-ul
corespunztor liniei de comand:
mysql>
La apariia liniei de comand, serverul MySQL este pregtit pentru a primi
comenzi. Pentru nceput, se vizualizeaz bazele de date care sunt momentan sub
gestiunea severului:

mysql> SHOW DATABASES;

Observaie: ncheierea unei comenzi trebuie s se fac neaprat prin ;. n cazul n care
lipsete ;, i se tasteaz ENTER, se consider c respectiva comand este scris pe mai
multe rnduri, ateptnd-se continuarea editrii comenzii, pn la introducerea
caracterului ;. Altfel spus, ENTER dup caracterul ; nseamn executarea comenzii iar
ENTER dup orice alt caracter nsemn continuarea editrii comenzii pe o noua linie.
Spre exemplu, comanda anterioar poate fi scris pe 3 linii astfel:
mysql>SHOW
->DATABASES
->;
Se recomand scrierea unei comenzi de lungime mare pe mai multe linii. Execuia
comenzii SHOW DATABASES are urmtorul efect pe ecran:


+------------+
| Database |
+------------+
| mysql |
| test |
+------------+
2 rows in set (0.00 sec)

Serverul MySQL-ul utilizeaz o prima baz de date, numit mysql, pentru a
stoca numele user-ilor, parolele corespunztoare acestora i drepturile lor (n diverse
tabele, asupra crora se va reveni). tergerea acestei baze de date (operaie
nerecomandat) poate conduce la erori n funcionarea server-ului.
A doua baz de date (test) este un exemplu de baz creat implicit n urma
instalrii fiind, dup cum i spune i numele, o baz pentru testare.

Comanda create database

Inaintea crearii grupului de tabele care vor servi la memorarea datelor, trebuie
creata o baza de date folosind comanda create database. Exemplu:

mysql>create database evidenta;

Comanda use

Pentru a lucra (a selecta) o baza de date, aceasta trebuie precizata folosind
instructiunea use urmata de numele bazei de date respective.

mysql>use evidenta;

Comanda create table

Dupa crearea bazei de date si selectarea ei se poate trece la crearea tabelelor
(fisierelor) bazei. Instructiunea create table are sintaxa:

mysql>create table nume_tabela(
mysql>nume_col1 tip atribute,
mysql>nume_col2 tip atribute,
mysql>primary_key(nume_col1)
mysql>);

Atributele campurilor unui tabel

unsigned precizeaza ca nu sunt admise valori negative.
not null precizeaza ca la efectuarea unei inregistrari acel camp trebuie
neaparat completat cu o valoare potrivita, deci nu este permisa valoarea nula
auto_increment este un atribut special in MySQL si functioneaza astfel: la
efectuarea unei inregistrari in tabel, daca nu se precizeaza valoarea acestui
camp, atunci MySQL genereaza automat un numar unic, mai mare cu o
unitate decat valoarea maxima de pe coloana respectiva in acel moment (de
obicei, pentru campuri cu numere intregi). MySQL impune ca o coloana cu
atributul auto_increment sa aiba o valoare unica.
primary_key- arata ca acea coloana din tabel este indexata pentru cautari
rapide si ca fiecare valoare din acel camp trebuie sa fie unica.

Comanda alter

Modificarea definitiei unei tabele se realizeaza folosind comanda alter.

1.Modificarea numelui unei tabele:
mysql>alter table nume_vechi rename nume_nou;
2.Adaugarea unei coloane:
mysql>alter table nume_tabela add column nume_coloana tip atribute;

Comanda insert

Insert serveste la adugarea de inregistrari (linii) intr-un tabel al bazei de date
curente. Sintaxa comenzii este:

mysql>insert into nume_tabela(col1, col2,...) values (val1,val2,...);

Valorile de tip text trebuie puse intre ghilimele simple.

Comanda update

Comanda update permite modificarea valorilor unor campuri dintr-un tabel. Sintaxa
ei este:
mysql> update nume_tabela set col1=val1,col2=val2...where col1=value;

Desi conditia din clauza where poate fi complexa, de cele mai multe ori ea este de
forma cheie_primara=valoare.

Comanda select

Comanda select este cea mai complexa comanda din limbajul SQL si este destinata
regasirii unor anumite informatii.
Daca se doreste selectarea tuturor inregistrarilor dintr-o tabela, sintaxa comenzii este:
mysql>select * from nume_tabela;
Daca se doreste selectarea doar a unor inregistrari dintr-o tabela, care indeplinesc o
anumita conditie, sintaxa comenzii este:
mysql>select * from nume_tabela where nume_camp=100;
Daca se doreste selectarea doar a unor coloane dintr-o tabela, sintaxa comenzii este:
mysql>select nume_camp1,nume_camp2 from nume_tabela;
Daca se doreste selectarea doar a unor coloane dintr-o tabela, care indeplinesc o
anumita conditie, sintaxa comenzii este:
mysql>select nume_camp1,nume_camp2 from nume_tabela where nume_camp=100;

Comanda delete

Pentru a sterge unul sau mai multe articole existente, dintr-o tabela se va utiliza
comanda delete cu sintaxa:
mysql>delete from nume_tabela where nume_camp=100;
Pentru a sterge toate articolele existente dintr-o tabela, sintaxa comenzii este;
mysql>delete from nume_tabela;

Comanda drop

Comanda drop permite suprimarea unui tabel din baza de date curenta sau
distrugerea intregii baze de date. Sintaxa comenzii este:

mysql>drop table nume_tabela;
mysql>drop database nume_baza;

Comanda show

Comanda show se foloseste pentru listarea bazelor de date existente, a tabelelor din
baza de date curenta sau pentru listarea campurilor unei tabele. Sintaxa ei este:

mysql>show databases;
mysql>show tables;
mysql>show fields from nume_tabela;

Comanda quit

Comanda determina intreruperea conexiunii cu serverul MySQL si inchiderea sesiunii
de lucru a clientului MySQL. Este echivalenta cu exit.

mysql>quit;
mysql>exit;


Dezvoltare de aplicaii PHP cu baze de date MySQL

Principial, operarea n PHP cu baze MySQL este extrem de asemntoare cu cea
cu bazele de date InterBase (deosebirile aprnd doar prin funciile diferite utilizate).

4.5.1 Interogare fr parametrii a unei baze de date

Exemplul urmtor prezint una din cele mai simple modaliti de interogare
neparametrizate a unei tabele MySQL, cu o afiare formatat a rezultatelor sub o form
tabelar (vezi fig.1).

<table border=4>
<tr>
<th>NUME</th>
<th>VIRSTA</th>
</tr>
<?php
// conectare la server
$link = mysql_connect("localhost", "root", "")
or die ("Could not connect");
print ("Connected successfully");
// selecie baz de date
mysql_select_db ("ioji")
or die ("Could not select database");
// interogare
$result = mysql_query ("SELECT nume, virsta FROM tabela1");
// extragere informaii i afiare
while (list ($nume, $virsta) = mysql_fetch_row ($result)) {
print (" <tr>\n".
" <td>$nume</td>\n".
" <td>$virsta</td>\n".
" </tr>\n");
}
mysql_close($link); // nchidere conexiune
?>
</table>


Fig.1 Interogare fr parametrii, cu afiare tabelat

Analiznd codul surs, se poate observa o parte de cod HTML pentru realizarea
capului de tabel necesar afirii, dup care urmeaz scriptul PHP propriu-zis pentru
interogarea bazei de date. La aceast parte a codului se vor face referiri n continuare.
Apar cteva funcii PHP noi, care permit operarea cu baze de date MySQL:
- mysql_connect permite conectarea la un server MySQL
- mysql_select_db permite selecia bazei de date MySQL
- myql_query interogarea efectiva a tabelei MySQL (ca parametru putndu-se practic
folosi orice string reprezentnd o comand MySQL valid)
- mysql_fetch_row returneaz un ir de valori (corespunznd unei linii din tabela
interogat), iar cnd nu mai sunt alte linii returneaz FALSE
- mysql_close nchide conexiunea cu serverul MySQL
Construcia de limbaj list( ) (care, ca i array, nu este o funcie PHP n sens real),
permite asignarea unor valori unei liste de variabile (asemntoare practic unui ir),
printr-o singur operaie.
Dup cum am mai menionat, un astfel de exemplu de interogare a unei tabele, fr
nici un parametru, este un exemplu pur didactic. n realitate, interogrile se realizeaz pe
baza unor informaii furnizate sub form de parametrii.

S-ar putea să vă placă și