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 combinaţie 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ă funcţional” î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 acelaşi calculator ca şi programul server,
optiunea –h hostname poate fi omisă. Nu există nici o legătură î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.
-opţiunea –p cere user-ului care se conectează să introducă parola corespunzătoare
(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ţă), fără nume şi
fără parolă. În acest caz conectarea (de pe host-ul local) se face tastând doar comanda
‘mysql’ fără parametrii (sub Linux) sau lansând mysql.exe (sub Windows).
În cazul unei conectări reuşite, programul client MySQL va afişa prompter-ul
corespunzător liniei de comandă:
mysql>
La apariţia liniei de comandă, serverul MySQL este pregătit pentru a primi
comenzi. Pentru început, se vizualizează bazele de date care sunt momentan sub
gestiunea severului:

mysql> SHOW DATABASES;

Observaţie: Încheierea unei comenzi trebuie să se facă neapărat prin ‘;’. În cazul în care
lipseşte ‘;’, şi se tastează ENTER, se consideră că respectiva comandă este scrisă pe mai
multe rânduri, aşteptând-se continuarea editării comenzii, până la introducerea
caracterului ;. Altfel spus, ENTER după caracterul ; înseamnă executarea comenzii iar
ENTER după orice alt caracter însemnă continuarea editării 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. Execuţia
comenzii SHOW DATABASES are următorul 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 corespunzătoare acestora şi drepturile lor (în diverse
tabele, asupra cărora se va reveni). Ştergerea acestei baze de date (operaţie
nerecomandată) poate conduce la erori în funcţionarea server-ului.
A doua bază de date (test) este un exemplu de bază creată implicit în urma
instalării 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 aplicaţii PHP cu baze de date MySQL


Principial, operarea în PHP cu baze MySQL este extrem de asemănătoare cu cea
cu bazele de date InterBase (deosebirile apărând doar prin funcţiile diferite utilizate).

4.5.1 Interogare fără parametrii a unei baze de date

Exemplul următor prezintă una din cele mai simple modalităţi de interogare
neparametrizate a unei tabele MySQL, cu o afişare 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");
// selecţie bază de date
mysql_select_db ("ioji")
or die ("Could not select database");
// interogare
$result = mysql_query ("SELECT nume, virsta FROM tabela1");
// extragere informaţii şi afişare
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 fără parametrii, cu afişare tabelată

Analizând codul sursă, se poate observa o parte de cod HTML pentru realizarea
capului de tabel necesar afişării, după care urmează scriptul PHP propriu-zis pentru
interogarea bazei de date. La această parte a codului se vor face referiri în continuare.
Apar câteva funcţii PHP noi, care permit operarea cu baze de date MySQL:
- mysql_connect – permite conectarea la un server MySQL
- mysql_select_db – permite selecţia bazei de date MySQL
- myql_query – interogarea efectiva a tabelei MySQL (ca parametru putându-se practic
folosi orice string reprezentând o comandă MySQL validă)
- mysql_fetch_row – returnează un şir de valori (corespunzând unei linii din tabela
interogată), iar când nu mai sunt alte linii – returnează FALSE
- mysql_close – închide conexiunea cu serverul MySQL
Construcţia de limbaj list( ) (care, ca şi array, nu este o funcţie PHP în sens real),
permite asignarea unor valori unei liste de variabile (asemănătoare practic unui şir),
printr-o singură operaţie.
După cum am mai menţionat, un astfel de exemplu de interogare a unei tabele, fără
nici un parametru, este un exemplu pur didactic. În realitate, interogările se realizează pe
baza unor informaţii furnizate sub formă de parametrii.

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