Documente Academic
Documente Profesional
Documente Cultură
În prezent SQL (Structured Query Language) este unul dintre cele mai puternice limbaje structurate
pentru interogarea bazelor de date relaţionale. Literele S de la Structured (structurat) şi L de la Language
(limbaj) sunt destul de sugestive, în schimb, litera Q de la Query (interogare), dacă este analizată din
punct de vedere literal, poate provoca unele confuzii în sensul că se limitează doar la a pune întrebări
bazei de date. Din fericire, SQL face mult mai mult decât atât: se pot crea tabele, se adaugă, se modifică
sau se şterg date, se combină şi se memorează interogările în cadrul bazei de date.
Istoria SQL începe în laboratoarele firmei IBM, unde limbajul a fost dezvoltat în ultimii ani ai
deceniului 8, odată cu lansarea proiectului System/R. Deşi este uşor accesibil utilizatorilor începători, el
nu rămâne dator nici programatorilor experimentaţi, punându-le la dispoziţie facilităţi deosebite.
Datorită puterii sale relaţionale, a uşurinţei în înţelegere şi utilizare, SQL a fost ales de ANSI
(American National Standards Organization – Organizaţia pentru Standarde Naţionale Americane) şi apoi
de către ISO (International Standards Organization – Organizaţia pentru Standarde Internaţionale) drept
limbaj standard pentru lucru cu baze de date relaţionale.
Pe parcursul cărţii standardul pentru SQL avut în vedere este standardul ANSI-92. Standardul SQL-
92 propune 3 niveluri de conformitate: nivelul de intrare (entry level), nivelul intermediar (intermediate
level) şi nivelul maximal (full level). Fiecare firmă îşi declară nivelul de conformitate al propriului SGBD
în raport de SQL-92.
Limbajul SQL este un limbaj neprocedural (sau declarativ), termenul de neprocedural fiind văzut mai
degrabă prin ce decât prin cum, în sensul că nu se specifică decât ce informaţie este solicitată şi nu cum
este obţinută această informaţie.
SQL poate fi utilizat autonom (manipularea interactivă a bazei de date) sau poate fi utilizat prin
inserare de comenzi SQL într-un limbaj de programare.
Instrucţiunile SQL în funcţie de rolul avut în manipularea datelor şi a tranzacţiilor se pot grupa astfel:
instrucţiuni pentru definirea datelor care asigura descrierea structurii bazei de date;
instrucţiuni de manipulare a datelor ce au ca scop adăugarea, modificarea şi ştergerea
înregistrărilor;
instrucţiuni de selecţie a datelor care permit consultarea bazei de date;
instrucţiuni de procesare a tranzacţiilor ce reprezintă operaţii multiple de manipulare a datelor;
instrucţiuni de control al cursorului;
instrucţiuni privind controlul accesului la date.
Există trei metode de bază privind implementarea limbajului SQL:
prin apelare directă (Direct Invocation) care presupune introducerea instrucţiunilor SQL direct
de la prompter;
metoda modulară (Modul Language) care foloseşte proceduri apelate de programele aplicaţiei;
metoda de tip încapsulat (Embedded SQL) care permite încapsularea instrucţiunilor în codul
de program.
Comanda specifică numele relaţii care va fi creată precum şi una sau mai multe descrieri de atribute.
Descrierea fiecărui atribut specifică numele atributul şi tipul de dată corespunzător, împreună cu
dimensiunea asociată.
Clauza opţională NOT NULL, asociată unui atribut indică faptul că în coloana corespunzătoare
acestuia nu pot să apară valori nedefinite (NULL). Această opţiune este utilă în special la definirea
atributelor care compun cheia primară a relaţiei.
Comenzile SQL pentru crearea tabelelor (relaţiilor) bazei de date UNIVERSITATE, care constituie
suportul tuturor exemplificărilor efectuate pe parcursul acestei cărţi, sunt următoarele:
• pentru tabela STUDENT
Observaţie: Pentru toate soluţiile în Access 2007 vom folosi parantezele drepte pentru a specifica un
câmp în a cărui denumire sunt cel puţin două cuvinte.
Pentru a modifica definiţia unei relaţia prin adăugarea sau ştergerea de coloane (atribute) şi restricţii
se foloseşte comanda ALTER TABLE cu următoarea sintaxă:
Comanda simetrică celei de creare a unei relaţii este DROP TABLE care are ca efect eliminarea din
catalogul sistem a relaţiei specificate. După executarea acestei comenzi nu se mai pot face nici un fel de
referiri la relaţia în cauză, descrierea acesteia împreună cu informaţiile conţinute fiind şterse. Sintaxa
comenzii este:
SQL prezintă comenzi dedicate modificării conţinutului unei tabele. Sunt avute aici în vedere cele
trei acţiuni prin care se actualizează o bază de date: adăugarea de noi linii la cele existente în tabelă,
ştergerea unor linii precum şi modificarea valorii unui atribut.
Adăugarea unei linii
Comanda SQL de adăugare de noi linii este INSERT, cu următoarea sintaxă:
În continuare sunt prezentate comenzile INSERT efectuate pentru popularea tabelelor bazei de date
UNIVERSITATE, în forma în care acestea sunt prezentate în Anexa 2.
Ştergerea liniilor
Comanda SQL pentru ştergerea uneia sau mai multor linii dintr-o tabelă este DELETE. Formatul
general al comenzii este următorul:
Din tabelă vor şi şterse toate tuplurile care îndeplinesc condiţia specificată în predicatul din clauza
WHERE.
Exemplu:
Să se şteargă din tabela STUDENT studentul care are numărul matricol 2002.
Exemplu:
Să se şteargă din tabela BURSA toate bursele încasate înainte de 23 martie 2019.
Exemplu:
Să se şteargă din tabela CARTE toate cărţile care nu aparţin domeniul Economie.
Exemplu:
Preţul cărţilor care au apărut înainte de 1999 a fost redus cu 25%. Să se opereze modificarea în baza de
date.
UPDATE CARTE
SET pret_unitar = pret_unitar – pret_unitar*0.25
WHERE an_aparitie < 1999
Exemplu:
Se realizează o majorare a burselor după cum urmează:
- socială cu 200 lei
- studiu cu 150 lei
- merit cu 230 lei
- excepţională cu 120 lei.
Să se actualizeze baza de date.
UPDATE CARTE
SET suma incasata = suma incasata + 200
WHERE tip_bursă = „sociala”
UPDATE CARTE
SET suma incasata = suma incasata + 150
WHERE tip_bursă = „studiu”
UPDATE CARTE
SET suma incasata = suma incasata + 230
WHERE tip_bursă = „merit”
UPDATE CARTE
SET suma incasata = suma incasata + 120
WHERE tip_bursă = „excepţionala”