Documente Academic
Documente Profesional
Documente Cultură
LIMBAJUL SQL
Identificatorii SQL sunt utilizaţi pentru a numi obiecte din BD. Pentru caracterele utilizate,
• nu poate fi mai lung de 128 caractere (majoritatea dialectelor au o limit mult mai joas )
standardul ISO permite A...Z, a...z, 0...9, _. Restricţii impuse identificatorilor:
̌ Listă_selecţie cuprinde câmpurile care dorim s apar în tabelul cu rezultatele interog rii.
Similar cu Field … Show …din grila de proiectare QBE.
̌ Clauza FROM specific numele tabelului sau tabelelor pe care se face cererea de
interogare. Pentru mai multe tabele, numele acestora se separ cu „,”. Pe lâng tabele, ca
surs de informaţii pot apare şi interogări deja create.
̌ Clauza WHERE cere numai înregistr rile care îndeplinesc criteriul de selecţie specificat.
Criteriul de selecţie este o expresie care conţine obligatoriu şi un operator adecvat tipului de
dat al câmpului respectiv. Clauza WHERE este opţional .
̌ Clauza ORDER BY cere ordonarea în mod cresc tor (ASC) sau descresc tor (DESC) a
rezultatelor interog rii. Ordonarea este opţional şi se poate face dup unul sau mai multe
câmpuri_criteriu.
̌ Clauza GROUP BY precizeaz câmpul sau câmpurile dup care se face gruparea
înregistr rilor. Echivalentul acestei clauze în macheta grafic QBE îl reprezint rândul Total.
̌ Clauza HAVING conţine criteriul care va fi aplicat câmpului argument al funcţiei agregat.
Spre deosebire de WHERE, care acţionează înainte de gruparea înregistr rilor, HAVING
acţionează după definirea acesteia.
Deoarece în instrucţiunile SQL care descriu joncţiuni se utilizeaz câmpuri care fac parte din
tabele diferite, trebuie specificat numele tabelului de care aparţin, folosind sintaxa
nume_tabel.nume_câmp
f r spaţii înainte sau dup punct.
• interne sau INNER JOIN determin o asociere a înregistr rilor din tabele,
Dup modul de asociere a înregistr rilor din tabele, joncţiunile pot fi:
̌ ON arat între ce câmpuri trebuie s existe relaţia pe care se bazeaz joncţiunea. Criteriul
de asociere conţine obligatoriu operatorul „=”.
Exist mai multe restricţii pentru instrucţiunile care generez interog rile UNION, şi anume:
• Num rul câmpurilor din lista de câmpuri din fiecare instrucţiune SELECT şi UNION
• Secvenţa de nume din fiecare list de câmpuri trebuie s corespund unor intr ri identice
SELECT trebuie s fie aceeaşi
• Este permis utilizarea doar o dat a clauzei ORDER BY, dup ultima instrucţiune
UNION SELECT
Exemple:
̌ Interog rile de acţiune tip CREATE duc la generarea unui nou tabel pornind de la structura
şi conţinutul unor tabele deja existente. Se foloseşte instrucţiunea SELECT ... INTO
̌ Interog rile de acţiune tip INSERT sunt folosite pentru ad ugarea de înregistr ri dintr-un
tabel în altul. Exist dou forme ale instrucţiunii şi anume:
• INSERT ... VALUES
• INSERT ... SELECT
a). In primul caz se adaug o singură înregistrare într-un tabel, menţionându-se câmpurile şi
valorile acestora. Se utilizeaz pentru operaţii simple, care presupun lucrul cu un num r redus de
înregistr ri.
• valorile din clauza VALUES vor avea aceeaşi natur cu câmpurile din clauza INTO
Reguli:
b). În al doile caz, este posibil s se copieze mai multe înregistrări dintr-un tabel în unul sau mai
multe tabele.
• num rul şi natura câmpurilor din clauza INTO s fie aceleaşi cu cele returnate de
• dac nu se introduce WHERE, toate înregistr rile din tabel_sursă vor fi ad ugate în
instrucţiunea SELECT
tabel_destinaţie
̌ Interog rile de acţiune tip DELETE şterg parţial sau total înregistr rile dintr-un tabel. Nu se
foloseşte pentru ştergerea de valori din câmpuri individuale, ci acţioneaz asupra înregistr rii
în totalitatea ei. Dac se şterg toate înregistr rile, structura de tabel r mâne, ea putând fi
eliminat numai cu DROP TABLE.
DELETE FROM nume_tabel
[WHERE criteriu_de_ştergere];
Ca şi instrucţiunea INSERT, operaţia de ştergere a înregistr rilor dintr-o tabel poate duce la
probleme de integritate referenţial în alte tabele.
Exemplu:
DELETE *
FROM Vânzări
DELETE *
FROM Angajaţi
WHERE Vârsta>60
̌ Interog rile de acţiune tip UPDATE pot introduce înregistr ri noi şi pot modifica valorile
câmpurilor din înregistr ri existente.
UPDATE nume_tabel
SET nume_câmp1=valoare1 [,nume_câmp2=valoare2]...
[WHERE criteriu_de_actualizare];
Ca şi în celelalte locuri unde apare clauza WHERE, restricţionarea se poate accentua folosind şi
operatori logici.
Exemplu:
UPDATE Comunicaţii
SET Reţea=”Orange”
WHERE Reţea=”Dialog” AND Data>#12.12.2001;
SELECT lista_câmpuri
FROM tabel1
WHERE tabel1.nume_câmp=
(SELECT nume_câmp
FROM tabel2
WHERE criteriu_de_selecţie);
Cele dou tabele trebuie s aib un câmp comun (nume_câmp) care va reprezenta câmpul de
leg tur ce st la baza construirii subinterog rii.