Documente Academic
Documente Profesional
Documente Cultură
Limbajul Sql.
Limbajul Sql.
LIMBAJUL SQL
5.3
5.3.1
Clauza FROM specific numele tabelului sau tabelelor pe care se face cererea de
interogare. Pentru mai multe tabele, numele acestora se separ cu ,. Pe lng tabele, ca
surs de informaii pot apare i interogri deja create.
Clauza WHERE cere numai nregistrrile care ndeplinesc criteriul de selecie specificat.
Criteriul de selecie este o expresie care conine obligatoriu i un operator adecvat tipului de
dat al cmpului respectiv. Clauza WHERE este opional.
Clauza ORDER BY cere ordonarea n mod cresctor (ASC) sau descresctor (DESC) a
rezultatelor interogrii. Ordonarea este opional i se poate face dup unul sau mai multe
cmpuri_criteriu.
Clauza GROUP BY precizeaz cmpul sau cmpurile dup care se face gruparea
nregistrrilor. Echivalentul acestei clauze n macheta grafic QBE l reprezint rndul Total.
Clauza HAVING conine criteriul care va fi aplicat cmpului argument al funciei agregat.
Spre deosebire de WHERE, care acioneaz nainte de gruparea nregistrrilor, HAVING
acioneaz dup definirea acesteia.
FROM nume_tabel1
{INNER|LEFT OUTER|RIGHT OUTER} JOIN nume_tabel2
ON criteriu_de_asociere
[{INNER|LEFT OUTER|RIGHT OUTER} JOIN nume_tabel3
ON criteriu_de_asociere]
[WHERE criteriu_selecie]
[ORDER BY cmpuri_criteriu [ASC|DESC]];
Obs: SQL ACCESS accept scrierea fr specificarea explicit a lui OUTER.
Semnificaia elementelor noi:
JOIN specific tabelul care va fi asociat (nume_tabel2, nume_tabel3) celui din clauza
FROM
ON arat ntre ce cmpuri trebuie s existe relaia pe care se bazeaz jonciunea. Criteriul
de asociere conine obligatoriu operatorul =.
Interogrile de aciune tip CREATE duc la generarea unui nou tabel pornind de la structura
i coninutul unor tabele deja existente. Se folosete instruciunea SELECT ... INTO
SELECT [domeniu] (cmp1,cmp2...)
INTO tabel_nou
FROM tabel_sursa
[WHERE criteriu_de_adugare];
Interogrile de aciune tip INSERT sunt folosite pentru adugarea de nregistrri dintr-un
tabel n altul. Exist dou forme ale instruciunii i anume:
INSERT ... VALUES
INSERT ... SELECT
a). In primul caz se adaug o singur nregistrare ntr-un tabel, menionndu-se cmpurile i
valorile acestora. Se utilizeaz pentru operaii simple, care presupun lucrul cu un numr redus de
nregistrri.
Interogrile de aciune tip DELETE terg parial sau total nregistrrile dintr-un tabel. Nu se
folosete pentru tergerea de valori din cmpuri individuale, ci acioneaz asupra nregistrrii
n totalitatea ei. Dac se terg toate nregistrrile, structura de tabel rmne, ea putnd fi
eliminat numai cu DROP TABLE.
Interogrile de aciune tip UPDATE pot introduce nregistrri noi i pot modifica valorile
cmpurilor din nregistrri existente.
UPDATE nume_tabel
SET nume_cmp1=valoare1 [,nume_cmp2=valoare2]...
[WHERE criteriu_de_actualizare];
Ca i n celelalte locuri unde apare clauza WHERE, restricionarea se poate accentua folosind i
operatori logici.
Exemplu:
UPDATE Comunicaii
SET Reea=Orange
WHERE Reea=Dialog AND Data>#12.12.2001;
5.5 Cereri de interogare imbricate
Scrierea unei interogri n cadrul alteia duce la apariia unei subinterogri, setul de
rezultate obinute de la aceasta constituind argument pentru prima interogare.
SELECT lista_cmpuri
FROM tabel1
WHERE tabel1.nume_cmp=
(SELECT nume_cmp
FROM tabel2
WHERE criteriu_de_selecie);
Cele dou tabele trebuie s aib un cmp comun (nume_cmp) care va reprezenta cmpul de
legtur ce st la baza construirii subinterogrii.