Documente Academic
Documente Profesional
Documente Cultură
- 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:
datelor;
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
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
10