You are on page 1of 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.

You might also like