bd8

10

Click here to load reader

Upload: ioana-neculai

Post on 10-Nov-2015

24 views

Category:

Documents


0 download

DESCRIPTION

/

TRANSCRIPT

  • 1

    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,

  • 2

    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:

  • 3

    - 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);

  • 4

    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:

  • 5

    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:

  • 6

    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

  • 7

    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

  • 8

    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.

  • 9

    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.

  • 10

    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.