Extras din document
I.1 Limbajul de programare Access SQL1
Limbajul de programare Access SQL sau mai precis Microsoft Jet SQL (prescurtat SQL) este
limbajul folosit în aplicatiile Access pentru descrierea cererilor.
El este derivat din standardul ANSI SQL-1989 (nivelul 1).
SQL este un limbaj de programare formal, neprocedural. În acesta o actiune (program) nu este
exprimata procedural printr-un algoritm ci printr-o descriere a acesteia (prin fraze).
SQL este de asemenea un limbaj de programare relational. În SQL actiunile sunt descrise prin
intermediul unor operatii de algebra relationala efectuate pe multimi, reprezentate de tabele. În felul
acesta, în SQL, accesarea si prelucrarea tabelelor se face la nivel global si nu prin intermediul
parcurgerii pas cu pas a înregistrarilor acestora (acest lucru se poate însa face prin intermediul colectiei
de obiecte Recordsets din modelul DAO).
I.1.1 Instructiuni (fraze) SQL2
O cerere este descrisa printr-un program SQL. Acesta este format din una sau mai multe
instructiuni (fraze) SQL (de obicei numai din una).
Din punctul de vedere al sintaxei o instructiune SQL este formata din cuvinte cheie (ca separator
se foloseste caracterul spatiu) si liste (în care separatorul este caracterul virgula). Caracterul care se
pune la sfârsitul unei instructiuni SQL este punct si virgula (;).
O instructiune SQL este formata din una sau mai multe comenzi SQL. O comanda descrie o
actiune efectuata printr-o cerere.
Comenzilor SQL le sunt atasate clauze, prin care se definesc anumite conditii specifice de
executie a acestora.
Atât comenzile cât si clauzele sunt configurate prin definirea unor parametri. Acestia pot fi:
− liste de obiecte Access (de exemplu: câmpuri sau tabele);
− expresii Access;
− optiuni de executie (predicate);
− operatori SQL între termenii listelor (sau chiar între comenzi sau clauze);
I.1.2 Descrierea prin instructiuni SQL a cererilor3
I.1.2.1 Cererea Select
O cerere Select este definita printr-o instructiune care contine comanda SELECT. Forma
acestei instructiuni este:
SELECT [{ALL | TOP nr. [PERCENT]}]
[{ DISTINCT | DISTINCTROW}]
lista_câmpuri
FROM lista_tabele
[WHERE conditie]
[GROUP BY lista_câmpuri]
[HAVING conditie]
[ORDER BY lista_ câmpuri];
1 De obicei, realizarea aplicatiilor Access nu necesita cunoasterea limbajului de programare SQL.
În acest capitol sunt prezentate câteva dintre elementele de baza ale limbajului SQL.
2 Expresiile SQL respecta regulile prezentate în Cap. II-6.
3 Conventii de scriere utilizate:
− parantezele drepte: specifica optional;
− acoladele: specifica alegerea unei optiuni din mai multe;
− caracterul | - se foloseste pentru a separa optiunile;
− sublinierea - se foloseste pentru a specifica: implicit;
Comanda SELECT - defineste o cerere de selectie. Argumentul acesteia este stabilit de o lista de
câmpuri si doua predicate.
- Lista de câmpuri - reprezinta practic câmpurile din rândul Field, din formularul de proiectare
QBE care au bifata optiunea Show (proiectia subschemei unei cereri, adica câmpurile
selectionate pentru iesirea cererii). În aceasta se poate:
− folosi clauza AS, pentru a specifica numele unui câmp;
− introduce printr-o expresie câmpuri calculate;
Exemplu: SELECT Input AS Inp, Pret, [Input]*[Pret] AS Val
- Optiunea: {ALL | TOP nr. [PERCENT]}
Reprezinta proprietatea Top Value a cererii.
- Optiunea: {DISTINCT | DISTINCTROW}
Reprezinta setarea uneia dintre cele doua proprietati ale cererii: Unique Value sau Unique
Records.
În comanda SELECT se pot utiliza urmatoarele clauze:
- Clauza FROM - utilizata obligatoriu, specifica subschema cererii, adica tabele (cereri) si
relatiile cu tipul legaturii lor.
- Lista de tabele - reprezinta practic rândul Table, din formularul de proiectare QBE.
− Între doua tabelele din lista se poate introduce operatia {Inner Join | Left Outer Join |
Right Outer Join} - prin care se specifica tipul de legatura a relatiei dintre câmpurile (clauza
ON) acestora.
Exemplu: FROM tab1 INNER JOIN tab2
ON tab1.câmp operator_relational tab2.câmp
− Clauza: IN 'nume_complet_fisier'[tip_baza_date;]
Atasata unei tabele reprezinta proprietatile cererii: Source Database si Source Connect Str
(utilizata numai pentru alte baze de date decât Access) prin care se pot utiliza tabele
apartinând unor baze de date externe.
Exemplu: FROM tab IN 'C:Folder1Aplicatie.mdb'
- Clauza WHERE conditie - specifica criteriul de selectie al cererii, adica rândurile Criteria si
Or, din formularul de proiectare QBE.
- Clauza GROUP BY lista_câmpuri - specifica pentru o cerere cu rând de Total, câmpurile de
grupare.
- Clauza HAVING conditie - specifica criteriile de selectie ale câmpurilor de iesire ale unei
cereri cu rând de Total. Este similara cu clauza Where.
- Clauza ORDER BY lista_câmpuri - specifica câmpurile dupa care se face sortarea (rândul
Sort din formularul de proiectare).
− Optiunea: [ASC | DESC] - utilizata dupa un câmp specifica ordinea de sortare pentru
acesta.
I.1.2.2 Cererea Crosstab
Cererea Crosstab este definita prin o instructiune care contine comenzile specifice:
TRANSFORM si PIVOT. Forma ei este:
TRANSFORM functie agregata SQL
SELECT lista_câmpuri_grupe FROM lista_tabele
[WHERE conditie]
GROUP BY lista_câmpuri_grupe
[ORDER BY lista_câmpuri_grupe];
PIVOT nume_câmp_subgrupa [IN (lista_valori)] ;
t Comanda TRANSFORM - defineste functia agregata utilizata de cererea Crosstab (introduce
informatiile din câmpul care are în rândul Crosstab din formularul de proiectare QBE, optiunea
t Comanda PIVOT - stabileste numele câmpului care va fi subgrupa cererii Crosstab. Acesta este
câmpul care are în rândul Crosstab din formularul de proiectare QBE, optiunea Column Heading).
− Clauza IN (lista_valori) a comenzii Pivot - reprezinta proprietatea Column Headings a cererii.
Prin datele din argumentul acestei clauzei (lista de valori) se definesc implicit atât numarul cât si
denumirea coloanelor cererii (valorile comune pe care le ia câmpul pentru subgrupa), indiferent
de valorile comune ale subgrupei care rezulta din executiile cererii Crosstab.
În SELECT si GROUP BY se introduc câmpurile (maxim 3) care vor forma grupele cererii
Crosstab (rândurile Row Headings din formularul de proiectare QBE a cererii Crosstab).
I.1.2.3 Cererea Union
Cererea Union este definita printr-o instructiune care contine operatorul specific UNION. Forma
acestei instructiuni este:
Instructiunea SQL Select, nr. 1
UNION [ALL] Instructiunea SQL Select, nr. 2
UNION [ALL] Instructiunea SQL Select, nr. 3 ;
- Operatorul UNION - se introduce între doua instructiuni SELECT, care au definite aceleasi
câmpuri la iesire. El realizeaza asa cum s-a mai aratat, reuniunea iesirii acestor cereri de selectie.
- Optiunea ALL - este utilizata cu scopul de a se pastra toate înregistrarile la iesirea cererii,
chiar daca ele sunt duplicate.
I.1.2.4 Cererea Update
Cererea Update este definita printr-o instruc
Preview document
Conținut arhivă zip
- Limbajul SQL
- 1[1]. Limbajul SQL_Access.pdf
- 2[1]. Facilitatile si arhitectura sistemului ORACLE.pdf
- 3[1]. Elemente de baza ale Limbajului SQLPLUS.pdf