Documente Academic
Documente Profesional
Documente Cultură
Urmatorul camp, Grupa (Ex 112C) contine si litere si cifre si va fi de tip sir de
caractere cu maxim 5 caractere, deci VARCHAR(5).
Campul Facultate va fi de tip VARCHAR cu lungimea 25, la fel si Specialitate.
Vom scrie in editorul de text comenzile ce realizeaza ce am spus pana acum,
adica creeaza tabelul GRUPE (Observatie: comenzile se vor scrie la tastatura si
nu le copiati folosind COPY si PASTE, astfel le veti retine mai usor pentru
test):
create table GRUPE(
IdGrupa INT AUTO_INCREMENT NOT NULL,
Grupa VARCHAR(5),
Facultate VARCHAR(25),
Specialitate VARCHAR(25),
PRIMARY KEY (IdGrupa)
);
Cel de al patrulea tabel, ORAR are 4 campuri. Acum trebuie sa scrieti voi
singuri comenzile pentru descrierea lui. Ce trebuie mentioat este ca campul
Ziua va avea maxim 8 caractere iar IntervalOrar maxim 11 caractere. De
exemplu 12.00-15.00 va fi o inregistrare corecta pentru campul IntervalOrar.
Cateva cuvinte referitoare la relatiile dintre tabele:
O corelatie (relationship) este o asociere (legatura) intre doua campuri similare,
aflate in tabele diferite. (poate exista o corelatie intre doua tabele care
partajeaza aceleasi date.
De exemplu in tabelul GRUPE din baza de date se atribuie fiecarai grupe un
numar (identificator), atunci se va folosi acel numar si pentru a identifica grupa
in care este un student din tabelul STUDENTI.
O relatie intre doua tabele functioneaza pe baza concordantei datelor din
campuri cheie de obicei un camp cu acelasi nume in ambele tabele.
Campurile prin intermediul carora se creeaza legatura reprezinta cheia primara
(primary key) dintr-un tabel (care furnizeaza un identificator unic pentru fiecare
inregistrare) si o cheie straina (foreign key) in al doilea tabel (un camp dintr-un
tabel care refera cheia primara din alt tabel).
Exista 3 tipuri de corelatii. Cele mai folosite sunt:
Corelatia 1-n (one-to-many relationship) (cea mai folosita) o inregistrare din tabelul
A poate avea 0, 1 sau mai multe inregistrari corespondente in tabelul B, in timp ce
fiecarei inregistrari din tabelul B ii corespunde cel mult o inregistrare din tabelul A. De
exemplu legatura dintre tabelele CURSURI si ORAR.
Corelatia n-m (many-to-many relationship) in care o inregistrare din tabelul A poate
avea 0, 1 au mai multe inregistrari corespondente in tabelul A. Acest tip de relatie este
posibil numai prin definirea unui al treilea tabel (numit tabel de jonctiune) a carui cheie
primara consta din doua campuri cheile straine ale tabelelor A si B. O astfel de relatie
este reprezentata de doua relatii one-to-many. In cazul nostru, tabelele Studenti si Cursuri
sunt legate printr-o relatie many-to-many mediata prin tabelul de jonctiune Grupe.
Un student poate participa la mai multe cursuri iar un curs poate fi audiat de
mai multi studenti. Se observa astfel ca intre obiectele STUDENTI si
CURSURI avem o relatie mai multi la mai multi (many-to-many). O astfel de
relatie se modeleaza printr-un obiect intermediar si doua relatii unul la mai
multi (one-to-many). Acest obiect il reprezinta grupele. Astfel o grupa contine
mai multi studenti iar un student nu poate face parte decat dintr-o singura grupa
(avem relatia one-to-many). Deasemenea o grupa poate audia mai multe cursuri
dar in general (si in cazul exemplului nostru) un curs nu este predat decat la o
singura grupa.
Noi am pus deja relatiile dintre tabele atunci cand am definit structura lor
(adica am spus care sunt cheile primare si care sunt cheile straine.
Vom completa acum scriptul cu popularea tabelelor, adica introducerea datelor.
Se vor introduce mai intai 5 inregistrari in tabelul GRUPE care trebuie
completat primul deoarece datele vor fi necesare in formularul STUDENTI si
CURSURI. Trei sunt date ca exemplu mai jos, iar doua le veti introduce voi:
insert into GRUPE (Grupa,Facultate,Specialitate) values
("111A","Inginerie Electrica","Electrotehnica"),
("411A","ETTI","Comunicatii"),
("311CC","Automatica si Calculatoare","Calculatoare");
("Analiza","I. Popescu",3);
Interogari
Interogari simple
Scopul instructiunii SELECT este de a regasi si afisa datele din unul sau mai
multe tabele ale bazei de date.
Secventa de prelucrare dintr-o instructiune SELECT poate contine urmatoarele
optiuni:
Clauza WHERE
Exemplele anterioare au prezentat utilizarea instructiunii SELECT pentru
regasirea tuturor randurilor dintr-un tabel. Dar adesea este necesara
restrangerea randurilor gasite. Acest lucru se poate realiza cu ajutorul clauzei
WHERE formata din cuvantul cheie WHERE urmat de o conditie de cautare
care specifica randurile ce urmeaza a fi regasite. Conditii de cautare pot fi:
Prin selectie, este creat un nou tabel care contine numai acele randuri ce
indeplinesc conditia precizata prin clauza WHERE.
In limbajul SQL sunt disponibili urmatorii operatori de comparare: = (egal), <
(mai mic), > (mai mare), <= (mai mic sau egal), >= (mai mare sau egal), <>
(diferit), != (nu este egal cu). Se pot utiliza deasemenea operatorii
logici AND, OR si NOT. Regulile de evaluare a unei expresii conditionale
sunt:
Daca dorim in ordine invers alfabetica, se pune in loc de DESC in loc de ASC.
SELECT Nume, Prenume, AnNastere
FROM STUDENTI
ORDER BY Nume DESC;
SELECT count(IdStudent)
FROM STUDENTI
WHERE AnNastere =1989;
In SQL este permisa atribuirea unei denumiri pentru coloana rezultata din
calcul folosind cuvantul rezervat AS.