Sunteți pe pagina 1din 10

SQL - Structured Query Language

1. Clasificarea LMD (Limbaje pentru Manipularea Datelor) relaionale:


ALGEBRICE au la baz teoria mulimilor. Din punct de vedere al limbajelor
algebrice, o relaie este o mulime de tupluri, iar o baz de date este o mulime de relaii ce
opereaz cu operatori algebrici. Cu ajutorul limbajului algebric se poate msura
completitudinea altor limbaje relaionale, precum completitudinea A-R (limbaj A-R complet
= limbaj prin care se pot exprima toi operatorii algebrei relaionale), completitudinea
absolut, etc. SQL este A-R complet.
Exemplu de limbaj algebric: SEQUEL cu extensia comercial SQL.
- Clauzele cu care opereaz SEQUEL sunt:
SELECT, (acioneaz pe vertical),
WHERE (acioneaz pe orizontal),
- clauzele UPDATE, INSERT, DELETE (pentru modificarea bazei);
operatorii admii: UNION, INTERSECTION, DIFFERENCE, i INCLUSION,
accept nchiderea tranzitiv;
- funciile: COUNT, SUM, AVG, MAX, MIN.
PREDICATIVE au la baz calculul predicatelor i pot fi:
Orientate pe tupluri, exemplu: QUEL, limbaj care are integrat:
- comenzi de modificare: APPEND (inserare), REPLACE (nlocuire), DELETE
(tergere);
- funcii de calcul: COUNT (care simuleaz cuantificatorul universal), SUM, AVG,
MAX, MIN;
- cuantificatorul existenial: RANGE prin care se declar o variabil tuplu pentru
fiecare relaie.
Orientate pe domenii, pot fi:
- Non-grafice, ex: FQL;
- Grafice, acestea pot fi:
Cu variabile domeniu explicite, exemplu: limbajul QBE care:
conine primitive de programare grafic a cererilor de date, este utilizat cu
precdere de utilizatorii neinformaticieni;
accept operaii de modificare: INSERT, DELETE, UPDATE;
accept funciile: COUNT, SUM, AVG, MAX, MIN.
Fr variabile domeniu explicite, ex: VGQF
SQL limbaj standard introdus de ANSI n 1986 (SQL-86), este att un limbaj
algebric interactiv ct i integrat ntr-un limbaj de programare. El permite definirea,
modificarea, interogarea i controlul securitii unei baze de date. Exist peste 100 de versiuni
ale limbajului.
2. Standardul SQL
SQL (Structured Query Language) este unul dintre cele mai puternice limbaje
structurate pentru interogarea bazelor de date relaionale. Este utilizat de o gam larg de
sisteme de gestiune a bazelor de date, permite rapid utilizatorului: manipularea, regsirea
datelor, actualizarea i administrarea bazei de date. Este un limbaj de definire a datelor
declarativ, n care utilizatorul face interogrile fr s specifice algoritmii de lucru necesari
obinerii rspunsurilor.
Instruciunile de baz ale limbajului SQL sunt recunoscute de numeroase sisteme de
gestiune a bazelor de date (exemplu: Oracle, Access, Sybase etc.).
Varianta SQL-92 (sau SQL-2) este structurat pe trei niveluri:
Entry level nivelul de intrare,
1

Intermediate level nivelul intermediar,


Full level nivelul maximal.
Varianta SQL-3, are adugate o serie de faciliti pentru lucrul cu BDOO i BDOOR
(baze de date orientate obiect relaionale).
Instruciunile SQL pot fi clasificate n:
Instruciuni pentru definirea datelor;
Instruciuni pentru manipularea datelor;
Instruciuni pentru procesarea tranzaciilor;
Instruciuni pentru selectarea datelor;
Instruciuni pentru controlul accesului la date;
Instruciuni pentru controlul cursorului.
Standardul SQL cuprinde:
LDD, limbaj de definire a datelor/schemei relaionale, folosit de administrator
pentru:
Crearea tabelelor
cuprinde clauze:
- pentru crearea schemei bazei de date: CREATE SCHEMA, CREATE
TABLE, CREATE VIEW;
- clauza de identificare a utilizatorului: AUTHORIZATION;
- clauza de acordare a privilegiilor GRANT;
- de modificare a tabelelor ALTER TABLE (cu opiunile: ADD; MODIFY,
ENABLE, DISABLE, DROP pentru adugarea, modificarea, activarea, dezactivarea
sau anularea unei constrngeri).
La crearea de tabele pot fi adugate constrngeri declarative:
- asupra domeniului, cu comanda CREATE DOMAIN (valorile luate de
atribute: DEFAULT, NOT NULL, UNIQUE, CHECK);
- de integritate a entitii (PRIMARY KEY), sau de integritate referenial
(FOREIGN KEY);
- referitoare la atribute, cu comanda CREATE ASSERTION.
Definirea indecilor. Indexul este un obiect al schemei bazei de date, este
independent de date att fizic ct i logic, permite acces direct i rapid la informaii, se
definete prin: CREATE INDEX, ALTER INDEX, DROP INDEX.
Definirea grupului (cluster-ului) specific SQL*PLUS. Utilizat n operaiile de
compunere, la regruparea fizic a dou sau mai multor tabele, pentru a face baza mai
performant, se definete prin: CREATE CLUSTER, ALTER CLUSTER, DROP CLUSTER.
Definirea vizualizrii. Se definete pornind de la o cerere, este de aceleai tip i
are aceleai constrngeri cu obiectul la care se refer, se realizeaz cu comanda CREATE
VIEW.
LMD, limbaj de manipulare a datelor, folosit de utilizator, lucreaz cu operatorii:
INSERT, UPDATE i DELETE.
LID, limbaj pentru interogarea datelor, a bazei de date, folosit tot de utilizator,
lucreaz cu clauza SELECT care are sintaxa:
SELECT [ALL/DISTINCT/UNIQUE] list selecie FROM list nume_tabele
WHERE criteriul de selecie asupra liniilor (pe orizontal)
ORDER BY list de atribute, criteriu [..]
GROUP BY list de atribute de grupare
HAVING criteriul de selecie asupra grupurilor
LCD, limbaj pentru controlul securitii i integritii bazei de date, folosit de
realizatorul de aplicaii. Limbajul asigur:

- Coerena datelor n cazul manipulrii lor de ctre mai muli utilizatori, folosind
conceptele de tranzacie i acces concurent.
Prin tranzacie nelegem unitatea logic ce grupeaz mai multe comenzi SQL. LCD
marcheaz nceputul i sfritul unei tranzacii prin BEGIN i END. ncheierea normal sau
anormal a unei tranzacii este semnalat prin: COMMIT i ROLLBACK.
- Confidenialitatea datelor prin protejarea lor la accesul neautorizat al unor
utilizatori. Pentru aceasta se folosesc clauzele GRANT pentru acordarea de privilegii
unui utilizator, cu sintaxa:
GRANT privilegiu1 [, privilegiu 2...]
ON nume tabel sau vizualizare
TO utilizator 1 [, utilizator 2... ]
i clauza REVOKE pentru retragerea privilegiilor. Clauza are sintaxa similar cu
GRANT.
3. SGBD ACCESS i limbajul SQL
SGBD-ACCESS:
Face parte din pachetul de programe Microsoft Office;
Lucreaz sub sistemul de operare Windows;
Are o interfa atractiv, prietenoas i uor de folosit;
Conine o colecie de obiecte:

Table obiect pentru stocarea datelor definite de utilizator;

Form obiect pentru introducerea, vizualizarea i controlul

datelor;

Query obiect pentru chestionarea, extragerea i vizualizarea

informaiilor obinute din tabele sau interogri utiliznd

limbajul SQL sau grila QBE;

Report obiect pentru imprimarea documentelor ce conin

informaii obinute din tabele i interogri;

Module obiect ce conine proceduri scrise n cod Visual

Basic, pentru aplicaiile mai complexe;

Macro obiect pentru automatizarea anumitor aciuni dintr-o

aplicaie.
Obiectele SGBD Access sunt stocate n fiiere cu extensia.mdb;
Permite accesarea BD concurent de ctre mai muli utilizatori, pe
diferite nivele de acces;
Permite publicarea datelor n pagini HTML dinamice pe WEB;
Este compatibil cu tehnologia ActiveX (accept realizarea de aplicaii
client/server);
Cu ajutorul lui se pot crea aplicaii care s acceseze baze de date stocate n SQL
Server.
Sistemul de gestiune a bazelor de date ACCESS accept utilizarea limbajului SQL.
QBE (Query by Example-interogare prin exemplu) permite proiectarea unor
interogri complexe. Informaia din grila QBE este automat transformat folosind SQL n
instruciuni.
Sintaxa instruciunilor SQL:
Comenzile SQL se ncheie cu; (punct i virgul);
Dac ntr-o interogare SQL se folosesc cmpuri din mai multe tabele, numele
tabelului se separ de numele cmpului prin, (virgul);
3

Dac numele cmpurilor conin spaii sau simboluri neacceptate de SQL atunci
acestea se ncadreaz n parantezele drepte;
Parametrii din liste se separ prin virgul;
Valorile de tip ir se marcheaz prin apostrof sau ghilimele;
Inegalitile din cadrul clauzelor se ncadreaz n <>;
Caracterele de nlocuire se specific prin simbolurile ? i *;
Caracterul # se folosete pentru a evidenia valorile de tip dat/timp.
Deschiderea ferestrei SQL
1. Se lanseaz programul ACCESS;
2. Se selecteaz crearea unei noi baze de date;
3. Din panoul din stnga al ferestrei ACCESS, din lista OBJECTS se selecteaz
QUERIES (Interogri);
4. In fereastra nou deschis se selecteaz opiunea CREATE QUERY IN DESIGN
VIEW;
5. Se nchide caseta SHOW TABLE;
6. Din meniul View se selecteaz modul de vizualizare SQL View sau de pe bara de
instrumente se selecteaz butonul vizualizare SQL. Se deschide fereastra SQL.
Crearea unei interogri
1. Se repet paii 1-4 de la deschiderea unei ferestre SQL;
2. Din caseta SHOW TABLE se aleg cu butonul Add: tabelele (Tables); interogrile
(Queries) sau ambele (Both) care vor fi folosite n interogarea SQL;
3. Din meniul View se selecteaz modul de vizualizare SQL View sau de pe bara de
instrumente se selecteaz butonul vizualizare SQL;
4. n fereastra deschis se tasteaz instruciunile SQL.
Execuia unei interogri:
Cu butonul din bara Query Design;
Cu comanda Run, meniul Query.
Observaie. Dac cererea de interogare SQL ACCESS are erori de sintax sau
rezultatul nu este cel ateptat se revine n modul de afiare SQL View i se fac corecturile
necesare.
Pentru a-i asigura exclusivitatea, majoritatea productorilor de sisteme de gestiune
a bazelor de date i creeaz propriile extensii ale limbajului SQL. SQL ACCESS nu face
excepie, astfel, dei respect ndeaproape standardul ANSI i el prezint modificri, cum ar
fi:
Limbajul DCL nu este suportat de ACCESS. Controlul i permisiunile de
securitate acceptate de ACCESS nu au fost implementate prin DCL;
Access are suport limitat pentru limbajul DDL, la crearea tabelelor folosindu-se n
general instrumentele grafice.
a. Clauze pentru definirea datelor
Crearea unei tabele cu SQL in Access:
Clauza CREATE TABLE
sintax: CREATE TABLE nume_tabela (cmp1 tip_data [NOTNULL], cmp2
tip_data [NOT NULL],...);
Observaii asupra numelui tabelei:
Este unic.
Nu poate fi ales dintre cuvintele rezervate.
Poate avea restricii asupra numrului de caractere, natura caracterului de nceput,
folosirea literelor mici sau mari etc.
Observaii asupra numelor cmpurilor:
4

Poate fi duplicat n cadrul bazei de date;


Este unic n tabel;
Nu poate fi cuvnt rezervat.
Exemple
1. S se creeze dou tabele de date utiliznd SQL, astfel:
TABELA1 cu numele CARTI avnd cmpurile:
ID_CARTE(numr), AUTOR_1, TITLU, EDITURA,AN_APARITIE(numr),
AUTOR_2
TABELA2 cu numele STUDENT, avnd cmpurile:
ID_STUDENT(numr), NUME, AN_STUDIU(numr), ID_CARTE(numr)
2. S se creeze tabela 3 numit CARTE3 cu cmpurile:
COD_CARTE (numr), NUME_CARTE(text), NUMAR_PAGINI(numr, nu poate
rmne necompletat)
Rezolvare
1. Create table CARTI (ID_CARTE number, AUTOR_1 text, TITLU text,
EDITURA text, AN_APARITIE number, AUTOR_2 text);
Create table STUDENT (ID_STUDENT number, NUME text, AN_STUDIU
number, ID_CARTE number);
2. Create table CARTE3 (COD_CARTE number, NUME_CARTE text,
NUMAR_PAGINI number not null);
Modificarea structurii unui tabel cu SQL n Access:
Clauza ALTER TABLE
sintax: ALTER TABLE nume_tabela ADD nume_cmp tip_data; (se adaug n
structura tabelei un cmp nou specificat dup ADD.)
Observaie: Cu comanda ALTER se pot face adugri de cmpuri, modificri de
dimensiuni ale cmpurilor, etc.
Exemple
1. S se completeze tabela 1 cu cmpul: NR_EXEMPLARE(numr) i s se
specifice pentru cmpul NR_EXEMPLARE c nu poate rmne necompletat.
2. S se completeze tabela 2 cu cmpurile: ORAS NATAL(text), AN
NASTERE(numr).
Rezolvare
1. ALTER TABLE CARTI ADD NR_EXEMPLARE number not null;
2. ALTER TABLE STUDENT ADD ORAS_NATAL text, AN_NASTERE numr.
tergerea unei tabele:
Clauza DROP TABLE
sintaxa: DROP TABLE nume_tabela.
Exemplu
S se tearg tabela3.
Rezolvare
DROP TABLE CARTE3
Datele de lucru pentru cele dou tabele vor fi cele de mai jos, iar chei primare vor fi
ID_CARTE, ID_STUDENT.
b. Clauze pentru interogarea datelor
Clauza SELECT pentru selectarea datelor
Scopul unei interogri este s selecteze (extrag) informaii din baza de date.
Aceasta se realizeaz cu:
5

Clauza SELECT
sintaxa: SELECT lista_selectie
FROM nume_tabela1, nume_tabela2, ...
[WHERE criteriul_de_selectie]
[ORDER BY cmpuri_criteriu [ASC|DESC]]
[GROUP BY cmp_de_grupare
[HAVING criteriul_de_ grupare]]
List_selecie = lista cmpurilor (coloanelor) n ordinea n care vor aprea n
rezultatele interogrii.
Exemplu
S se selecteze din tabela 2 cmpurile TITLU, NR_EXEMPLARE, EDITURA
Rezolvare
SELECT TITLU, NR_EXEMPLARE, EDITURA
FROM CARTI.
Dac se lucreaz cu toate cmpurile, se nlocuiete lista de selecie cu simbolul *.
Exemplu
S se creeze o interogare n SQL care s conin toat tabela 2.
Rezolvare
SELECT *
FROM CARTI;
Observaii
1. Cmpurile selectate pot fi redenumite n rezultatul interogrii folosind clauza AS:
SELECT cmp1 AS nume1
FROM nume_tabela1;
Exemplu
S se selecteze din tabela 2 cmpurile TITLU, AUTOR_1, astfel nct cmpul
AUTOR_1 s apar sub numele AUTOR
Rezolvare
SELECT TITLU, AUTOR_1 AS AUTOR
FROM CARTI;
2. Cmpurile pot fi combinate (concatenate) astfel nct mai multe cmpuri, s
formeze un singur cmp n rezultatul interogrii:
SELECT camp1 + + camp2 + + camp3 AS campcompus,
FROM nume_tabela1;
Se utilizeaz n special pentru date de tip text. Pentru cmpurile care nu sunt de tip
text, acestea se convertesc nti n text i apoi se aplic concatenarea.
Exemple
1. S se afieze informaiile din cmpurile ID_CARTE i separat TITLU, AUTOR_1
ntr-un singur cmp numit DATE_CARTE
2. S se concateneze cmpurile: TITLU, AUTOR_1, AN_APARITIE ntr-un cmp
numit DATE_CARTE
Rezolvare
1. SELECT TITLU, AUTOR_1 AS AUTOR
FROM CARTI;
SELECT ID_CARTE, TITLU+ , +AUTOR_1 AS DATE_CARTE
FROM CARTI;
2. PAS 1. SELECT STR(AN_APARITIE) AS AN_APARITIE2, *
FROM QUERY1;
PAS 2. SELECT TITLU+ + AUTOR_1 + +AN_APARITIE2
AS DATE_CARTE
6

FROM QUERY5;
Clauza FROM:
Specific numele tabelei, tabelelor sau interogrilor deja create care vor forma
noua interogare.
Dac lista_de selecie cuprinde cmpuri din mai multe tabele, n faa numelui
cmpului se trece numele tabelei din care provin.
Numele de tabele se separ prin ,.
Clauza WHERE (opional)
Utilizat la afiarea nregistrrilor care ndeplinesc un anumit criteriu de selecie,
n uniunea tabelelor;
Nu opereaz cu funcii totalizatoare;
Poate fi utilizat mpreun cu operatorii: AND, OR, NOT, IN, BETWEEN, LIKE.
Acetia permit combinarea mai multor criterii;
Operatorul de comparaie LIKE se utilizeaz mpreun cu caracterul * (wildcard).
SELECT camp1 + + camp2 + + camp3 AS campcompus,
FROM nume_tabela1
WHERE camp3 = f And camp4 Like M*
Presupunnd c n camp3 avem sexul respondenilor unui chestionar, codificat f
feminin i m masculin i n camp4 avem numele respondenilor, clauza WHERE specific
selecia tuturor respondenilor de sex feminin care au prima liter a numelui M.
Exemple
1. S se selecteze din QUERY1 toate informaiile despre crile care sunt n
bibliotec n 5 exemplare.
2. S se selecteze din QUERY1 toate informaiile despre crile care ncep cu litera
G.
3. S se selecteze din QUERY1 toate informaiile despre crile care ncep cu litera
S i sunt n bibliotec n 5 exemplare.
Rezolvare
1. SELECT *
FROM QUERY1
WHERE NR_EXEMPLARE=5;
2. SELECT *
FROM QUERY1
WHERE TITLU LIKE G*;
3. SELECT *
FROM QUERY1
WHERE NR_EXEMPLARE=5 AND TITLU LIKE S*;
Clauza ORDER BY (opional)
Utilizat la sortarea rezultatelor interogrii n mod cresctor (ASC) sau
descresctor (DESC), sau combinat.
Se poate realiza dup unul sau mai multe cmpuri_criteriu (definite drept chei de
sortare). In general, ordinea cmpurilor n lista de sortare va da i ordinea efecturii sortrilor
multiple (nu este obligatoriu)
Componenta BY a clauzei este obligatorie n SQL ACCESS.
Implicit sortarea se face ascendent.
SELECT camp1 + + camp2 + + camp3 AS campcompus,
FROM nume_tabela1
WHERE camp3 = f
ORDER BY camp4 Desc

Pstrnd semnificaiile cmpurilor din exemplul de la clauza Where, selecia se va


face astfel: toi respondenii de sex feminin sortai descresctor.
Exemple
1. S se ordoneze toate informaiile din Query1 dup autor 1.
2. S se ordoneze toate informaiile din Query1 dup autor 1 descresctor.
3. S se selecteze toate informaiile despre crile al cror nume de autor_1 ncepe cu
litera A i s se ordoneze dup anul apariiei.
4. S se selecteze toate informaiile despre crile care ncep cu litera A i s se
ordoneze descresctor dup anul apariiei.
Rezolvare
1. SELECT *
FROM QUERY1
ORDER BY AUTOR_1;
2. SELECT *
FROM QUERY1
ORDER BY AUTOR_1 DESC;
3. SELECT *
FROM QUERY1
WHERE AUTOR_1 LIKE A*
ORDER BY AN_APARITIE;
4. SELECT *
FROM QUERY1
WHERE TITLU LIKE A*
ORDER BY AN_APARITIE DESC;
Clauza GROUP BY
Precizeaz cmpul sau cmpurile dup care se face gruparea nregistrrilor,
sumarizarea lor. Echivalentul clauzei n grila QBE este rndul Total. Este primul pas n
agregarea datelor.
In majoritatea cazurilor GROUP BY se utilizeaz mpreun cu o funcie de
agregare i cu clauza AS pentru a specifica numele coloanei n rezultatul interogrii.
Funcii totalizatoare sau de agregare sunt:
- COUNT = numr nregistrrile din fiecare grup, cu respectarea condiiilor din
clauza WHERE;
- SUM = suma tuturor valorilor dintr-un cmp numeric;
- AVG = valoarea medie a unui cmp numeric, cu respectarea condiiilor din clauza
WHERE;
- MAX = valoarea maxim dintr-un cmp, cu respectarea condiiilor din clauza
WHERE;
- MIN = valoarea minim dintr-un cmp, cu respectarea condiiilor din clauza
WHERE.
Clauza HAVING
Este utilizat n cazul n care criteriul de filtrare se aplic rezultatelor obinute prin
agregare i nu se aplic fiecrei surse de nregistrri ca n clauza WHERE.
Dac este necesar i o condiie la utilizarea clauzei GROUP BY se va utiliza
clauza HAVING care opereaz dup grupare i nu WHERE, care opereaz nainte de a se
efectua gruparea nregistrrilor.
Observaie: este admis utilizarea unei funcii agregat care nu apare n lista de
selecie i apelarea la mai multe criterii de grupare.
8

Clauza JOIN (grupeaz i folosete date din tabele diferite)


Sintax:
SELECT [domeniu] list_selecie
FROM nume_tabela1 {INNER|LEFT OUTER|RIGHT OUTER} JOIN
nume_tabela2
ON criteriul_de_asociere
[{INNER|LEFT OUTER|RIGHT OUTER} JOIN nume_tabela3
ON criteriul_de_asociere]...
[WHERE criteriul_de_selectie]
[ORDER BY cmpuri_criteriu [ASC|DESC]]
Operaiile de asociere induse de clauza JOIN au ca rezultat producerea tuturor
combinaiilor posibile, pentru coninutul informaional al fiecrei tabele. Noile nregistrri
care rezult n urma jonciunii vor deveni disponibile pentru seleciile ulterioare. La o asociere
pot participa mai mult de dou tabele.
Semnificaia elementelor de sintax descrise mai sus este urmtoarea:
- INNER, LEFT OUTER, RIGHT OUTER sunt tipurile de jonciuni (intern,
extern de stnga, extern de dreapta). SQL ACCESS accept scrierea interogrilor externe
fr specificarea explicit a lui OUTER;
- JOIN specific tabela care va fi asociat (nume_tabela2, nume_tabela3...) tabelei
precizat n clauza FROM;
- ON criteriul de asociere arat relaia dintre cmpurile pe care se bazeaz
jonciunea. Unul se afl n tabela asociat, iar cellalt exist ntr-o alt tabel din lista cu
numele tabelelor. Expresia criteriul_de_asociere conine un operator de comparaie
(=,<,>,<>,<=,>=) i va returna valorile logice TRUE sau FALSE.
Exemple
1. Selectai, folosind uniunea intern (INNER JOIN), autorii care sunt cerui de
studeni la mprumut i au crile aprute n FRM.
2. Analog, dar s se listeze i numele studenilor.
3. Analog, dar s fie sortate dup carte.
4. Analog, dar s fie sortate dup carte descresctor.
Rezolvare
1. SELECT CARTI.AUTOR_1, CARTI.TITLU
FROM CARTI INNER JOIN STUDENT ON
CARTI.ID_CARTE=STUDENT.ID_CARTE
WHERE EDITURA=FRM;
2. SELECT CARTI.AUTOR_1, STUDENT.NUME, CARTI.TITLU
FROM CARTI INNER JOIN STUDENT ON
CARTI.ID_CARTE=STUDENT.ID_CARTE
WHERE EDITURA=FRM;
3. SELECT CARTI.AUTOR_1, STUDENT.NUME, CARTI.TITLU
FROM CARTI INNER JOIN STUDENT ON
CARTI.ID_CARTE=STUDENT.ID_CARTE
WHERE EDITURA=FRM
ORDER BY TITLU;
4. SELECT CARTI.AUTOR_1, STUDENT.NUME, CARTI.TITLU
FROM CARTI INNER JOIN STUDENT ON
CARTI.ID_CARTE=STUDENT.ID_CARTE
WHERE EDITURA=FRM
ORDER BY TITLU DESC.
9

c. Clauze de modificare a datelor


Clauza INSERT (Adaug nregistrri dintr-o tabel n alta)
Sintaxa:
INSERT INTO nume_tabela (cmp1, cmp2...)
VALUES (valoare1,valoare2...)
Observaii:
valorile din clauza VALUES sunt de aceeai natur cu cmpurile din clauza
INTO;
mrimea valorii corespunztoare fiecrui cmp va fi mai mic dect dimensiunea
cmpului;
nu este obligatorie specificarea denumirii cmpurilor, SQL ACCESS asociaz
listei de valori cmpurile n ordinea din structura nregistrrii (prima valoare se va introduce
n primul cmp, a doua valoare, n al doilea cmp .a.m.d.).
Clauza DELETE (terge parial sau total nregistrrile dintr-o tabel)
Sintax:
DELETE FROM nume_tabela [WHERE criteriul_de_tergere]
Observaie: se terg doar nregistrri din tabel nu i tabela.
Clauza UPDATE (insereaz noi nregistrri i modific valorile cmpurilor din
nregistrrile existente)
Sintax:
UPDATE nume_tabel
SET nume_cmp1 = valoare1 [,nume_cmp2 = valoare2]...
[WHERE criteriul_de_actualizare]
Ca i n cazul instruciunii INSERT, se va urmri dac n cmpul cu valori de
actualizat sunt permise numai valori unice. Atunci cnd se dorete actualizarea datelor din
mai multe cmpuri se folosete virgula ca separator ntre cmpuri i valorile acestora.
Se pot utiliza mai multe condiii WHERE apelnd la operatorul logic AND pentru a
limita actualizarea la nregistrri mai bine specificate.
Subinterogri
O subinterogare se obine prin scrierea unei interogri n cadrul alteia; rezultatele
obinute n urma unei interogri va reprezenta argumentul pentru alt interogare. Utilizatorul
poate s creeze legturi ntre mai multe interogri SQL ACCESS, pe baza unor cmpuri
unice, cu rol de cutare n structura tabelelor (subinterogrile nlocuiesc interogrile imbricate
cu care lucrau versiunile precedente de SQL i au performane mult mai bune). Ele se pot
realiza i cu macheta grafic QBE Access.
Sintaxa:
SELECT * FROM Tabela1
WHERE Tabela1.nume_ cmp = (SELECT nume_cmp FROM Tabela2 WHERE
criteriul_de_selectie);
Tabela1 i Tabela2 vor avea un cmp comun (nume_cmp) care va reprezenta de
fapt cmpul de legtur ce st la baza construirii subinterogrii. Clauza SELECT din
subinterogare va avea acelai numr de cmpuri i de natur similar cu cele din clauza
WHERE a interogrii.

10