Sunteți pe pagina 1din 5

Exercitiul 1 -- Conectarea la serverul MySQL, deschiderea bazei de date

proprii

Pentru a va conecta la serverul de baze de date MySQL executati comanda (in


terminalul deschis anterior):

mysql -h mega -u username -p

unde username este numele de cont folosit la operatia de login sub Linux.

In cazul in care parola este introdusa corect (identic cu parola pentru operatia de
login sub Linux) ar trebui sa puteti vedea promterul mysql>.

In acest terminal veti putea scrie (pana la deconectarea de serverul MySQL) doar
comenzi SQL.

Listati bazele de date existente pe serverul MySQL. Pentru aceasta folositi


comanda:

show databases;

Daca vedeti ca nu exista in lista, creati o baza de date (cu numele identic cu
usernameul folosit la login) cu comanda urmatoare:

create database username;

Selectati baza dumneavoastra de date pentru folosire. Pentru aceasta folositi


comanda:

use username;

Ar trebui sa vedeti mesajul database changed .

Listati tabelele existente in baza dumneavoastra de date. Pentru aceasta folositi


comanda:

show tables;

Nu inchideti acest terminal. Acest terminal va fi referit mai departe sub denumirea
de CLIENT_BD.

Exercitiul 2 -- Implementarea unei structuri de tabele relationate privind


temperamentele unor elevi

Vom realiza o baza de date cu doua tabele privind temperamentele unor elevi.
Tabelele vor avea structura de mai jos:
Pentru aceasta se va crea un fisier, rulat apoi cu comanda SOURCE.

Deschideti inca un terminal Start (K) --> System --> Konsole sau Terminal. In
terminalul nou deschis setati directorul curent la valoarea IA/lab9. Folositi
comanda:

cd IA/lab9

Porniti un editor de text. Folositi comanda:

kwrite &

Crearea tabelului tipuri temperamentale

In editorul deschis introduceti urmatorul continut (eventual fara comentariile


introduse cu eticheta --):

drop table if exists elevi; -- sterge tabel


drop table if exists tipuri; -- sterge tabel

CREATE TABLE tipuri ( -- linia 1


id_temp SMALLINT AUTO_INCREMENT NOT NULL, -- linia 2
Temperament VARCHAR(20) NOT NULL, -- linia 3
PRIMARY KEY (id_temp) -- linia 4
);

Sa analizam semnificatia fiecarei linii:

Linia 1 creeaza tabelul tipuri cu structura dintre paranteze.


Linia 2 defineste campul id_temp care este de tip intreg si va fi cheie primara,
autoidentare, nenul.

Linia 3 defineste campul Temperament din tabel ca sir de caractere de lungime 20


si care nu poate fi nul.

Linia 4 defineste drept cheie primara campul id_temp.

Introducerea datelor (tipuri temperamentale)

La sfarsitul fisierului scris anterior adaugati urmatoarele 8 linii (sunt date doar 2 ca
exemplu) pentru temperamentele amorf, apatic, coleric, flegmatic, nervos, pasionat,
sangvin, sentimental:

INSERT INTO tipuri (temperament) VALUES ("amorf"); -- linia 4


...
INSERT INTO tipuri (temperament) VALUES ("sentimental"); -- linia 11

Liniile 4-11 introduc valori in tabelul tipuri in campul temperament.

Crearea tabelului elevi

La sfarsitul fisierului scris anterior adaugati urmatoarele linii:

CREATE TABLE elevi ( -- linia 12


id_elev INT AUTO_INCREMENT NOT NULL, -- linia 13
nume VARCHAR(20) NOT NULL, -- linia 14
initiala VARCHAR(3), -- linia 15
prenume VARCHAR(20) NOT NULL, -- linia 16
id_temp SMALLINT NOT NULL, -- linia 17
PRIMARY KEY (id_elev), -- linia 18
FOREIGN KEY (id_temp) references tipuri -- linia 19
);

Sa analizam semnificatia fiecarei linii:

Linia 12 creeaza tabelul elevi cu structura dintre paranteze.

Linia 13 defineste campul id_elev care este de tip intreg, autoidentare, nenul.

Linia 14 defineste campul nume ca sir de caractere de lungime 20 si care nu poate


fi nul.

Linia 15 defineste campul initiala ca sir de caractere de lungime 3.

Linia 16 defineste campul prenume ca sir de caractere de lungime 20 si care nu


poate fi nul.
Linia 17 defineste id_temp ca un intreg nenul (va fi cheie straina).

Linia 18 defineste campul id_elev drept cheie primara.

Linia 19 defineste campul id_temp drept cheie straina ce se va lega de tabelul


tipuri.

Introducerea datelor (elevi)

La sfarsitul fisierului scris anterior adaugati mai multe linii similare urmatoarei
linii:

INSERT INTO elevi (id_temp,nume,initiala,prenume) VALUES


(3,"Ionescu","N","Costel"); -- linia 20
...

Dupa ce ati scris acest fisier salvati-l cu numele fisier.sql iar apoi din CLIENT_BD
executati comanda:
source fisier.sql

Efectuarea unor interogari

In CLIENT_BD introduceti urmatoarea comanda:

SELECT * FROM tipuri;

Ar trebui sa vedeti toate datele din tabelul tipuri.

Apoi introduceti:

SELECT * FROM elevi;

Astfel vedeti datele din tabelul elevi. Introduceti apoi:

SELECT tipuri.temperament, elevi.nume, elevi.initiala, elevi.prenume


FROM tipuri, elevi
WHERE elevi.id_temp=tipuri.id_temp
AND tipuri.id_temp=3;

Aceasta comanda afiseaza tipul de temperament, numele, initiala si prenumele


elevilor care au temperamentul 3("coleric") folosind datele din ambele tabele
create.

Se observa ca am legat cheia primara din tabelul tipuri cu cheia straina din tabelul
elevi punand mai sus conditia elevi.id_temp=tipuri.id_temp
Exercitiul 3 -- Implementarea unui model dat de tabele relationate

Baza de date va avea 3 tabele: PERSOANE, PROFESII si LOCALITATI cu


structura si relationarile urmatoare:

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