Documente Academic
Documente Profesional
Documente Cultură
• Adăugarea înregistrărilor;
• Ştergerea de înregistrări;
• Căutarea de înregistrări;
• Modificarea înregistrărilor;
• Ordonarea înregistrărilor;
• Filtrarea înregistrărilor;
Pentru a efectua aceste operaţii este necesar ca tabela să fie deschisă în modul DataSheet View (meniul View
comanda DataSheet).
1.1. Adăugarea înregistrărilor. Dacă tabela este deschisă imediat după creare, Access va afişa o foaie de
date vidă, iar pointerul de înregistrare va fi plasat pe prima şi unica linie, pe butonul ei de selecţie (butonul
gri din prima coloană din tabela afişată în modul DataSheet View).
Pentru a introduce date se plasează pur şi simplu cursorul pe câmp şi se introduce o valoare, în timp ce se
efectuează această operaţie, pointerul de înregistrare se transformă într-un creion, ilustrând faptul că se editează o
înregistrare. O nouă linie vidă apare dedesubtul primei linii, în locul pointerului de înregistrare figurează un asterisc
(*) indicând o nouă înregistrare.
Dacă tabela care se deschide în modul DataSheet conţine date, pentru a adăuga o nouă înregistrare trebuie
plasat cursorul pe ultima linie (al cărei pointer este un asterisc) şi se introduce noua înregistrare. Pentru plasarea
cursorului pe ultima linie se execută clic pe butonul New Record de pe bara cu instrumente sau se alege Insert,
Record sau se utilizează tasta săg. în jos.
1.2. Ştergerea de înregistrări. Pentru a şterge una sau mai multe înregistrări se selectează înregistrarea sau
înregistrările şi se acţionează tasta Delete sau butonul Delete Record de pe bara cu instrumente sau se
alege din meniul Edit opţiunea Delete. Oricare ar fi metoda aleasă, Access deschide o casetă de mesaj
care cere confirmarea ştergerii. Dacă se execută clic pe butonul Yes, înregistrările sunt şterse. Se
recomandă o atenţie deosebită la ştergerea înregistrărilor deoarece Access nu permite anularea ştergerii
înregistrării.
1.3. Căutarea unei înregistrări se realizează în acces secvenţial sau în acces direct.
Căutarea secvenţială a unei înregistrări se face utilizând setul de butoane din partea stângă a barei aflate în
partea de jos a ferestrei DataSheet: butonul Next Record, First Record, Last Record, Previous Record sau bara
de derulare verticală dacă sunt prezente mai multe înregistrări decât pot încăpea în dimensiunea verticală a ferestrei
DataSheet.
Pentru consultarea în acces direct se selectează câmpul în care se face căutarea şi se utilizează butonul Find
de pe bara cu instrumente sau se alege Edit, Find. Access deschide caseta de dialog Find in Field. în caseta de text
Find What se specifică criteriul de căutare. Butoanele de comandă Find First (găsirea primei apariţii) şi Find Next
(găsirea următoarei apariţii) sunt activate când se introduc date în caseta de text. Căutarea se poate realiza în întreaga
1
Conf.univ.dr.habil. Marian Cristescu
Informatică Curs 12
tabelă (AH), începând cu înregistrarea curentă până la sfârşitul tabelei (Down), de la înregistrarea curentă spre prima
înregistrare (Top) sau de la ultima înregistrare spre începutul tabelei (Up), opţiuni care se pot preciza în zona Search.
Din lista derulantă Match (potrivire) se poate selecta Whole Field (întregul câmp), Start of Field (începutul
câmpului) şi Any Part of Field (orice parte a câmpului). Pentru a indica o căutare care să ţină seama de literele mari
şi mici, se marchează caseta de validare Match Case.
1.4. Modificarea înregistrărilor. În timp, apare necesitatea actualizării datelor conţinute în baza de date.
Modificarea conţinutului unei înregistrări se realizează plasând cursorul în câmpul respectiv şi
modificând datele.
Pentru înlocuirea automată a valorilor dintr-un câmp din mai multe înregistrări se utilizează caseta de dialog Replace
in Field (o variaţiune a casetei Find in Field). Caseta Replace in Field se afişează prin comanda Edit, Replace sau
a combinaţiei de taste Ctrl + H .
Comanda va înlocui valorile din câmpurile care se potrivesc cu valorile introduse în caseta de text Find What.
înlocuirea se face cu valorile specificate în caseta de text Replace With. înlocuirea se poate face selectiv prin căutarea
fiecărei valori de înlocuit şi confirmarea înlocuirii (butoanele Field Next şi Replace) sau pentru toate înregistrările
care corespund criteriul de înlocuire (butonul Replace AH). Obs. Datele pot fi modificate şi folosind interogări
speciale.
1.5. Ordonarea înregistrărilor. Ordonarea şi filtrarea înregistrărilor sunt operaţii deosebit de importante
pentru utilizatori, dar ele vizează îndeosebi cererile informaţionale ale utilizatorilor, motiv pentru care
ele sunt realizate pentru obiectele tip Query (cereri de interogare).
1.6. Îngheţarea afişării câmpurilor. Dacă o tabelă conţine prea multe câmpuri, ele nu pot fi afişate toate în
modul DataSheet View. Pentru a vizualiza toate câmpurile se foloseşte bara de derulare orizontală sau
îngheţarea afişării câmpurilor. Pentru îngheţarea afişării câmpurilor se deschide tabela în modul
DataSheet View, se selectează coloana sau coloanele a căror afişare se va îngheţa executând clic pe
butoanele antetelor acestor coloane, apoi din meniul Format se alege opţiunea Freeze Columns
(îngheţarea coloanelor). Pentru "dezgheţarea" coloanelor "îngheţate" se alege Format, Unfreeze AH
Columns.
2
Conf.univ.dr.habil. Marian Cristescu
Informatică Curs 12
3
Conf.univ.dr.habil. Marian Cristescu
Informatică Curs 12
4
Conf.univ.dr.habil. Marian Cristescu
Informatică Curs 12
Pentru crearea unei cereri de selecţie se alege opţiunea Design View din caseta New Query sau a opţiunii
Create query in design View , aşa cum se observă în figura următoare:
.
După alegerea modului de creare, se trece la selectarea tabelelor sursă din care se vor extrage datele. Caseta
Show Table, din figura de mai jos oferă posibilitatea precizării sursei de date pentru construirea cererii.
5
Conf.univ.dr.habil. Marian Cristescu
Informatică Curs 12
Grila Query
Design
Fereastra Select Query (de mai sus) este împărţită în două zone:
a. Zona superioară, în care se vizualizează tabelele/interogările sursă de date precum şi relaţiile definite între
acestea;
b. Grila Query Design structurată astfel:
6
Conf.univ.dr.habil. Marian Cristescu
Informatică Curs 12
7
Conf.univ.dr.habil. Marian Cristescu
Informatică Curs 12
2. Precizarea câmpurilor (atributelor) ale căror realizări urmează să le returneze cererea. Numele acestor atribute
se vor preciza în grila Query Design în rândul Field utilizând una din următoarele modalităţi:
• Selectarea atributului din cadrul listei Field Name ce poate fi deschisă prin acţionarea cu mouse-ul a
butonului List Box ;
• Executarea unui dublu clic de mouse asupra atributului dorit din tabela/interogarea aflată în panoul
superior;
• Metoda drag-and-drop care presupune selectarea cu mouse-ul a atributului dorit din panoul superior şi
tractarea acestuia în linia Field.
Dacă este necesar să fie aduse în panoul inferior toate atributele aparţinând unei tabele se va proceda în unul din
următoarele moduri:
• Selectarea tuturor atributelor din tabela sursă (aflată în panoul superior) printr-un dublu clic de mouse pe
numele tabelei şi glisarea atributelor în grila Design (panoul inferior);
• Utilizarea asteriscului aparţinând tabelei sursă: trageţi cu mouse-ul asteriscul în prima coloană Field. Chiar
dacă în grila de proiectare este completată doar prima coloană Field la execuţie interogarea va returna
realizările tuturor atributelor;
8
Conf.univ.dr.habil. Marian Cristescu
Informatică Curs 12
Properties din bara de instrumente sau executând dublu click într-o zonă liberă a panoului superior, în linia
Output All Fields se va preciza Yes (figura de mai sus ) .
Precizarea valorii Yes pentru proprietatea Output All Fields nu va determina aducerea în grila de proiectare
a câmpurilor din tabela sursă, dar, în momentul executării cererii, DynaSet-u\ va cuprinde realizările tuturor
atributelor.
În mod implicit în DynaSet, antetul coloanelor este reprezentat de numele atributului, cu excepţia cazului în
care la crearea tabelei aţi precizat o altă etichetă prin intermediul proprietăţii Caption. Dacă doriţi afişarea în
DynaSet a unei noi etichete pentru un atribut plasaţi mouse-ul în linia Field înaintea numelui atributului, tastaţi
eticheta dorită urmată de caracterul ":".
9
Conf.univ.dr.habil. Marian Cristescu
Informatică Curs 12
Criteriile de selectare se pot construi cu ajutorul constructorului de expresii care poate fi activat fie prin
intermediul butonului “Build” de pe bara de butoane:
mouseului :
Se va pune în execuţie astfel Expression Builder:
10
Conf.univ.dr.habil. Marian Cristescu
Informatică Curs 12
4. Se precizează, dacă este necesar, câmpul/câmpurile după care se doreşte o eventuală sortare şi sensul
acestei a în linia Sort.
11
Conf.univ.dr.habil. Marian Cristescu
Informatică Curs 12
In privinţa cererilor de selecţie care au ca sursă mai multe tabele trebuie precizat că, în mod implicit, Access
utilizează operaţia de echicompunere, fapt ce conduce la selectarea înregistrărilor ce au corespondent în ambele
tabele (interogări de tip Inner Join).
De exemplu, dacă se realizează o cerere asupra tabelelor Produse şi Stocuri, fără a se specifica vreun criteriu,
în lista rezultatelor nu vor figura decât produsele pentru care există ceva în stoc. Dacă se doreşte realizarea unei
interogări de tip Outer Join (folosind operaţia de compunere externă) se va efectua dublu click asupra liniei de
legătură dintre tabele şi, în caseta Join Properties (ca în figura de mai jos ) se poate preciza selectarea tuturor
înregistrărilor din una dintre tabele, indiferent dacă au sau nu corespondent în cealaltă tabelă.
Pentru realizarea operaţiei de compunere pe baza unei relaţii de inegalitate (<, >, o) a câmpurilor de legătură
dintre tabele se poate folosi limbajul SQL. O cerere ce are ca sursă două tabele între care nu există nici o relaţie va
avea ca rezultat produsul cartezian al înregistrărilor din cele două tabele.
12
Conf.univ.dr.habil. Marian Cristescu
Informatică Curs 12
13
Conf.univ.dr.habil. Marian Cristescu
Informatică Curs 12
Pe lângă modurile de vizualizare Design şi Datasheet Access permite utilizatorilor vizualizarea şi modificarea
codului SQL al interogărilor. Pentru aceasta se va apela din meniul View opţiunea SQL View. Fraza SQL ce stă la
baza cererii exemplificate anterior este prezentată mai jos:
14
Conf.univ.dr.habil. Marian Cristescu
Informatică Curs 12
Pentru a adăuga un câmp calculat într-o interogare se tastează numele acestuia într-o nouă coloană din grila
Query Design, se adaugă două puncte: şi apoi se completează expresia dorită.
15
Conf.univ.dr.habil. Marian Cristescu
Informatică Curs 12
Alţi operatori
Operator Descriere Exemplu
Folosit cu valoarea logic ă Null pentru a stabili dac ă o Is Null
Is
valoare este Null sau nu Is Not Null
Determină dac ă un şir de caractere începe cu un Like “EXE*”
Like
anumit prefix Like “FILE????”
Determină dac ă o valoare de tip şir apare într-o list ă
In X In (“ABC”,”ggg”,”FILE”)
de valori
Determină dac ă o valoare numeric ă sau o dat ă
Between calendaristică se g ăseşte într-un anumit interval de Between 1 and 6
valori
Expresiile Access utilizând operatorul Like permit specificarea unor criterii de selecţie prin căutarea unui şir întrun
text. în interiorul textului se pot folosi caracterele generice ? (poate înlocui orice caracter în poziţia în care apare) şi
* (orice în poziţia în care apare şi în următoarele).
Fig 4.23.
Astfel expresia Like "Tom*" selectează toate numele care conţin pe primele trei poziţii caracterele "Tom",
iar expresia Like u*escu" va permite selecţia numelor terminate în "escu".
Operatorul In precizează mulţimea de valori admise pentru un atribut. Interogarea din Figura 4. 22 va selecta
clienţii de tip SRL (a căror denumire se termină cu aceste trei caractere) ce au comandat produsele "cablu
telefonic" sau "banda izolanta".
16
Conf.univ.dr.habil. Marian Cristescu
Informatică Curs 12
Fig 4.24
Constantele utilizate în construirea expresiilor Access pot fi de natură:
• numerică (ex:1200,5,0) ;
• text (ex:"123", "TOMA ION", ”str. Viilor 15”);
• Dată calendaristică (ex: #12.31.01# ceea ce indică data de 31 decembrie 2001).
Identificatorii sunt nume de obiecte Access (tabele, atribute, formulare,etc) ca de exemplu [Produse]! [cod
produs].
Prin intermediul identificatorilor se pot prelua valori pentru definirea criteriilor de pe formulare create anterior.
Exemplul din Figura 4. 23 prezintă o interogare ce va afişa comenzile şi data comenzilor pentru un produs a cărui
nume a fost selectat într-o caseta' de tip LisîBox (numită ListaProdu.se) pe un formular numit Selecţie.
Funcţiile care pot fi de natură:
• Dată calendaristică : Date() Month(), Year (), etc. Exemple:
Date() returnează data curentă;
Month(Date()} returnează numărul lunii calendaristice curente.
Year(Date(*)) returnează anul curent.
• De tip text: Len() - returnează lungimea unui şir, TrimQ - elimină spaţiile de la începutul şi de la sfârşitul
unui şir, Left() - returnează primele n caractere de la începutl unui şir, etc.
• Matematice şi trigonometrice: ABS() - returnează valoarea absolută a unui număr, INT() - returnează partea
intreagă dintr-o valoare numerică, ROUND() -rotunjeşte o valoare cu un anumit număr de zecimale,SUM() -
calculează suma, AVG() - calculează media, etc.
• Financiare: PV() returnează valoarea actuală a unei anuităţi plătite în rate periodice egale, SLN() returnează
valoarea amortizarea unui mijloc fix după o anumită perioadă (amortizare liniară) etc.
• Funcţii diverse: ISNUMERIC(), ISNULL(), etc.
17
Conf.univ.dr.habil. Marian Cristescu
Informatică Curs 12
Expresii pot fi utilizate într-o interogare de selecţie fie drept criterii de selecţie fie pentru a calcula anumiţi
indicatori. Expresia poate fi tastată în rândul Field al unei coloane (exemplul din Figura 4. 20) sau poate fi
construită cu ajutorul generatorului de expresii (a cărui fereastră se activează efectuând clic dreapta în linia Field şi
selectând din mediul contextual opţiunea Build). Exemplul din Figura 4. 24 prezintă utilizarea generatorului de
expresii pentru a calcula valoarea fiecărui produs de pe o comandă.
18
Conf.univ.dr.habil. Marian Cristescu
Informatică Curs 12
Acest text va fi afişat în caseta de dialog Enter Parameter Value în momentul în care se pune în execuţie
interogarea, iar utilizatorul poate introduce criteriul de selecţie în mod dinamic, la execuţie.
19
Conf.univ.dr.habil. Marian Cristescu
Informatică Curs 12
Query Design câmpurile necesare şi adăugându-se eventualele câmpuri calculate, după care se va apăsa butonul
Totals din bara de instrumente. Ca rezultat al acestei operaţii, în grila Query Design, va fi disponibil un nou rând
intitulat Total, în mod implicit, gruparea datelor după valorile câmpului toate coloanele vor avea selectată în linia
total opţiunea Group By care conduce la respectiv. Se va păstra opţiunea Group By în dreptul câmpurilor de
grupare, urmând ca pentru celelalte câmpuri să fie selectată din lista de selecţie funcţia dorită.
Lista conţine nouă funcţii de tip agregat ce sunt prezentate în tabelul următor:
Funcţia Returneaza Tipul de câmpuri pentru care se poate aplica
AVG Media aritmetică Number, Date, Currency, AutoNumber
COUNT Numărul total de valori Toate tipurile
FIRST Prima valoare Toate tipurile
LAST Ultima valoare Toate tipurile
MAX Valoarea maximă Text, Number, Date, Currency, AutoNumber
MIN Valoarea minimă Text, Number, Date, Currency, AutoNumber
STDEV Deviaţia standar a Number, Date, Currency, AutoNumber
valorilor
20
Conf.univ.dr.habil. Marian Cristescu
Informatică Curs 12
1. Elaborarea unei interogări de selecţie în modul Design View. Se vor alege tabelele ce conţine datele şi se vor
selecta câmpurile dorite pentru afişare şi eventualele câmpuri pentru care se vor impune restricţii.
2. Din meniul Query se va selecta opţiunea CrossTab Query ce va avea ca efect imediat afişarea liniilor Total şi
Crosstab în grila interogării.
3. Se va specifica modul de agregare a datelor, respectiv funcţiile totalizatoare în linia Total.
4. In linia CrossTab se va opta pentru Row Heading în cazul câmpurile ce vor fi afişate pe liniile tabelului, Column
Heading pentru câmpul ce va fi afişat pe verticală, şi Value pentru valorile ce vor fi afişate la intersecţia liniilor
cu coloanele. Este permisă existenţa mai multor câmpuri ordonate pe orizontală (Row Heading), dar a unui singur
câmp Column Heading şi a unui singur câmp Value
Exemplu: O interogare care va avea ca rezultat un tabel sintetic cu rezultatele la examene ale unei specializări
ar putea avea următoarea structură:
Pentru a crea o interogare se selectează câmpurile dorite din unul sau mai multe tabele, apoi se specifică unul
dintre câmpuri ca fiind de tipul „Column Heading”, unul sau mai multe câmpuri, de tipul „Row Heading” şi unul de
tip „value”.
Câmpul de tip „value” va apare la intersecţia unei linii cu o coloană; pentru acest câmp se specifică o funcţie
agregat ca de exemplu Sum, Count, etc din linia Total. Celelalte câmpuri, care apar în tabelul sintetic vor avea clauza
„Where” în linia Total şi vor fi folosite la specificarea unor criterii din interogare.
Noul tabel va prelua din tabelele existente toate câmpurile selectate în linia Field din tabelele existente,
eventual cu specificarea unui criteriu.
Traducerea SQL va fi:
SELECT studenti.marca, profile.cod_prof, special.cod_spec, ani.an, PLANE.cod_disc INTO [note]
FROM ani INNER JOIN (((profile INNER JOIN PLANE ON profile.cod_prof = PLANE.cod_prof)
INNER JOIN special ON (special.cod_spec = PLANE.cod_spec) AND (profile.cod_prof = special.cod_prof))
INNER JOIN studenti ON (special.cod_spec = studenti.cod_spec) AND (profile.cod_prof = studenti.cod_prof)) ON
(ani.an = studenti.an_s) AND (ani.an = PLANE.as);
22
Conf.univ.dr.habil. Marian Cristescu
Informatică Curs 12
În limbaj SQL:
23
Conf.univ.dr.habil. Marian Cristescu
Informatică Curs 12
În limbaj SQL:
DELETE studenti.*, ani.an
FROM ani INNER JOIN ((profile INNER JOIN special ON profile.cod_prof = special.cod_prof) INNER
JOIN studenti ON (special.cod_spec = studenti.cod_spec) AND (profile.cod_prof = studenti.cod_prof)) ON ani.an
= studenti.an_s
WHERE (((ani.an)="5"));
Interogari in Access
Din fereastra Database putem alege dintre cele 2 optiuni de a crea interogari asupra bazei de date:
Dup ace veti termina de ales campurile din tabele in urma finalizarii operatiei de interogare va rezulta o un
table in care vor fi afisate valorile campurilor selectate.
In acest mod nu se pot realize decat interogari foarte simple asupra tabelelor.
Cu ajutorul acestei optiuni se pot face si cateva calcule foarte simple ca SUM, AVG, MAX,MIN si COUNT
dupa anumite campuri numerice.
Alegeti optiunea Summary din fereastra Simple Query Wizard inainte de a finalize interogarea si apoi pe
Summary Options:
26
Conf.univ.dr.habil. Marian Cristescu
Informatică Curs 12
Sa incercam sa realizam exemplele de mai inainte: sa alegem numele agentilor, al clientilor si al articolelor care
au fost comandate.
Pentru aceasta vom alege in campurile:
- Fields - campul corespunzator din fiecare tabela in parte;
- Table – tabela corespunzatoare;
- Sort – dupa caz ascending sau descending pentru un anumit camp;
- Show- stabileste aparitia sau nu a unui camp in tabela rezultata
- Criteria – aici se va scrie un eventual criteriu de selectie
27
Conf.univ.dr.habil. Marian Cristescu
Informatică Curs 12
In campul Field putem de asemenea sa folosim si campuri calculate. De exemplu vrem sa vedem clientii de la
ce agenti si ce produse au comandat impreuna cu valoarea lor finala care se obtine din pretul produsului *
cantitatea comandata:
Rezultatul va fi acesta:
28
Conf.univ.dr.habil. Marian Cristescu
Informatică Curs 12
Daca analizam expresia: valoare finala: [articole].[art pret]*[comenzi].[cant] se poate deduce ca:
- valoare finala reprezinta eticheta sau numele campului calculate care va apare in tabela rezultata;
- fiecare camp este apelat prin sitanxa: <nume tabela> . <nume camp>. Folosinde-se operatorul “.” se arata
astfel apartenenta campului la acea tabela. Parantezele patrate sunt folosite pentru a grupa numele
compuse asa cum avem in exemplul nostrum in cazul campului: art pret ce semnifica articol pret. Accessul
va pune implicit “[ ]” pentru fiecare nume de table si camp folosit. In final inmultirea dintre pretul unui
articol care se afla in tabela articole si cantitatea comadata, camp care se afla in tabela comenzi este:
[articole].[art pret] * [comenzi].[cant]
Pentru a realiza diferite criterii de selecţie se poate utiliza şi generatorul de expresii (Expression Builder) a cărui
fereastră se deschide selectând opţiunea Build a meniului pe care îl activaţi printr-un click dreapta de mouse în
rândul Criteria.
De exemplu vrem sa selectăm doar agentii care au primit comision. Asta înseamnă ca valoarea din comision să fie
mai mare decât 0. Interogarea va fi creată cu ajutorul generatorului de expresii.
Se face click dreapta sub câmpul comision in rândul Criteria si se allege Build:
29
Conf.univ.dr.habil. Marian Cristescu
Informatică Curs 12
30
Conf.univ.dr.habil. Marian Cristescu
Microsoft Access Curs 12
Alegeţi acum toţi clienţii care sunt din oraşul Bacău sau Iaşi. Pentru a nu scrie în rânduri
separate ale câmpului Criteria numele fiecărui oraş, se va scrie într-un singur rand Bacău şi
Iaşi folosindu-se operatorul OR.
Utilizarea operatorilor
Pentru a construi expresii pe rândul Criteria se utilizează operatorii:
• aritmetici: adunare (+); scădere (–), înmulţire (*), împărţire (/), ridicare la putere (^),
împărţirea a două numere cu returnarea unui întreg (\), împărţirea a două numere cu
returnarea restului împărţirii (MOD).
• de comparaţie: <, >, =, <=, >=. Aceşti operatori returnează valorile logice True şi False.
Excepţie reprezintă cazul în care unul dintre operatori are valoarea NULL şi deci orice comparare
va returna valoarea NULL.
• asociaţi operatorilor de comparare:
– IS NULL, IS NOT NULL – o valoare NULL (câmp necompletat) nu este nici TRUE nici FALSE.
Înregistrările care au valoarea NULL în câmpurile selectate nu apar ca rezultate ale interogării;
– LIKE – se foloseşte împreună cu caracterele de înlocuire „* ” şi „?” pentru a stabili dacă o valoare
începe cu unul sau mai multe caractere; caracterul „* ” poate înlocui orice număr de caractere;
caracterul „? ” înlocuieşte numai un caracter;
– IN – stabileşte dacă o valoare este cuprinsă într-o listă;
– BETWEEN – stabileşte dacă o valoare aparţine unui interval specificat.
• logici:
– NOT – negaţia;
– AND – pentru conjuncţia a două valori;
– OR – pentru disjuncţia a două valori;
– XOR – pentru disjuncţia exclusivă a două valori; – Eqv – verifică echivalenţa a două valori.
• de concatenare a şirurilor de caractere: + şi &.
• constante: constantele utilizate în construirea expresiilor Access pot fi de natură –
numerică (ex: 1200,5,0);
– text (“123”, “Toma Ion”, ’str. Viilor 15’);
– dată calendaristică (ex: #12.31.01# ceea ce indică data de 31 decembrie 2001).
• Funcţiile: pot fi de natură:
– Dată calendaristică : Date(), Month(), Year (), etc.
Exemple:
1. Date() – returnează data curentă;
2. Month(Date()) returnează numărul lunii calendaristice curente.
3. Year(Date()) returnează anul curent.
– De tip text:
1. Len() – returnează lungimea unui şir;
2. Trim() – elimină spaţiile de la începutul şi de la sfârşitul unui şir; 3. Left() –
returnează primele n caractere de la începutul unui şir, etc.
– Matematice şi trigonometrice:
1. ABS() – returnează valoarea absolută a unui număr;
2. INT() – returnează partea întreagă dintr-o valoare numerică, ROUND() – rotunjeşte o valoare
cu un anumit număr de zecimale;
3. SUM() – calculează suma; 4. AVG() – calculează media, etc.
– Financiare:
1. PV() returnează valoarea actuală a unei unităţi plătite în rate periodice egale;
2. SLN() returnează valoarea amortizării unui mijloc fix după o anumită perioadă
(amortizare
liniară) etc.
– Funcţii diverse: ISNUMERIC(), ISNULL(), etc
6. Pentru a obţine o listă a clienţilor cu [cl Id] dintre numerele 1, 2,3, se va realiza
interogarea:
Sub câmpul [cl Id] se scrie expresia: IN (1 ; 2 ; 3).
7. Pentru a obţine o listă cu clienţii cu reducere intre valorile 5 şi 10 se scrie: Between 1
And 3.
8. Mergeţi în structura tabelei Clienţi şi adăugaţi câmpul: data de tipul Date/Time şi daţi
apoi valori acestui camp. Aflaţi apoi clienţii care au făcut comenzi între perioada
01.01.2006 şi 31.12.2007.
Sub câmpul data pe rândul Criteria veţi scrie: Between #01.01.2006# And #31.12.2007#.
• câmpuri calculate pot fi create şi pentru text (concatenarea câmpurilor): Numepren: [Nume] & “ ”
& [ Prenume]
• câmpurile calculate pot fi sortate, li se pot aplica criterii de selecţie sau se pot totaliza.
• în câmpurile calculate se poate utiliza funcţia IIF cu următoarea sintaxă:
IIF ( <expresie>, valoare 1, valoare2)
unde:
– <expresie> – este o expresie a cărei valoare de adevăr este evaluată pentru fiecare
înregistrare;
– valoare 1 – este valoarea returnată dacă expresie este adevărată; – valoare2 – este
valoarea returnată dacă expresie este falsă.
Rezultatul este:
2. Să realizăm o interogare în care să calculam pentru fiecare agent in parte, şi fiecărui client
căruia s-a furnizat un articol, valoarea articolului furnizat (din pret * cantitate), TVA-ul,
valoarea finală (din valoare + TVA) şi apoi să verificăm cât anume a plătit clientul scăzând
din suma finala (câmpul din comenzi) valoarea finală calculată.
După cum se vede numele de coloană sunt corespunzătoare cu identificatorii scrişi pentru fiecare
expresie calculată:
Valoare, TVA, valoare finala şi Suma platita. Se poate observa cala Suma platita clinetul este pe minus,
adică mai are de plată respectiva suma din valoarea finală.
3. Afişaţi pentru fiecare comandanda in parte următorul text: comanda a fost realizata intre:
agentul: [numele agentului din baza de date] furnizează clientului: [numele clientului din
baza de date] articolul: [numele articolului din baza de date]
4. Afişaţi pentru fiecare comandă în parte, după ce calculaţi cât mai are de dat clientul, dacă
are restanţă sau a plătit în plus.
Pentru a rezolva această interogare vă veţi folosi de interogarea cu numărul doi de mai sus.
S-a realizat o interogare realizându-se o grupare după fiecare agent, ce produs şi cantitatea
comandată.
TEMA
Realizaţi o interogare de grupare după fiecare produs şi cantitatea comandată.
Putem de asemenea să realizăm sumă de valoare produs comandată pentru fiecare articol:
Interogări de acţiune
Interogările de acţiune pot avea ca rezultat:
• Crearea de noi tabele (Make Table Query)
• Actualizarea datelor (Update Query)
• Adăugarea de noi înregistrări (Append Query)
• Ştergerea înregistrărilor (Delete Query)
• Elaborarea unei interogări de selecţie în modul Design View (vor fi luate în calcul doar
câmpurile ce dorim să facă parte din structura noii tabele, iar, în cazul în care sunt necesare
şi alte câmpuri pentru aplicarea unor criterii, acestea nu vor fi marcate în linia Show a grilei
de interogare.
• Apelarea din meniul Query a opţiunii Make Table Query şi specificarea în casete Make
Table a numelui noii tabele (se poate opta pentru crearea noii tabele într-o altă bază de date
bifând opţiunea Another Database şi specificând numele fişierului).
• Lansarea în execuţie a interogării.
Exemplu:
Crearea unei tabele ce va conţine numele clienţilor şi pentru fiecare client cantitatea totală de
articole comandate. Vom face o grupare după numele clienţilor, iar ca expresie calculată vom
face sumă după cantităţile de produse comandate. După ce am ales cîmpurile care vor forma
noua tabelă, vom alege din meniul Query opţiunea Make-Table Query. După care vom lansa
în execuţie interogarea.
După ce veţi scrie numele tabelei veţi rula interogarea apăsând butonul: . Apăsaţi Yes
pentru ferestrele de atenţionare care vor apărea.
Apoi mergeţi în fereastra Database, pe tabul Tables şi verificaţi dacă a fost creată noua tabelă.
Daţi Open să vedeţi rezultatul interogării.
Exemplul 2:
PDF created with pdfFactory Pro trial version www.pdffactory.com
Microsoft Access Curs 12
Crearea unei tabele care să conţină aceleaşi câmpuri ca tabela comenzi însă, câmpul suma
finală va fi redenumit în valoare finală care va fi calculat după formula cant * pret, iar
comenzile vor fi doar pentru clienţii din oraşul Bacău.
De asemenea dvs. puteţi să bifaţi caseta de pe rândul Show, şi astfel va apare şi oraşul unde au
avut loc comezile.
Apoi alegeţi opţiunea Make- Table Query şi ca titlu pentru tabel puteţi scrie „comenzi dupa
localitate”.
Exemplu:
Pentru clienţii din oraşul Bacau vom pune o reducere de valoarea 10.
Pentru a realiza o interogare de tip Update, se vor realiza următorii paşi:
a) În modul
Design View se vor
selecta câmpurile
sunt: pentru care aplicăm
modificarea:
oraş cu criteriul
reducere, pentru care vom Câmpurile folosite
Mergeţi apoi şi verificaţi în tabela clienţi daca valorile dorite au fost modificate.
În cadrul interogărilor Update nu sunt admise modificări asupra câmpurilor cheie primară sau
modificări ce ar putea conduce la nerespectarea restricţiilor de integritate.
b) Din meniul Query sau din bara de unelte de sub meniu, se va selecta opţiunea Append
Query ce va conduce la afişarea ferestrei Append în care se va selecta numele tabelei în
care dorim adăugarea.
Rulaţi interogarea şi vedeţi dacă au fost adăugate înregistrări în tabela comenzi după localitate.
Se selectează câmpurile după care aplicăm criteriul dorit. Apoi se allege opţiunea Delete Query.
ORDER BY criteriu specifică ordinea de sortare a unui obiect din sursa de date a
interogării.
Exemplu:
SELECT nume, marca
FROM studenţi
WHERE dataN LIKE “*/*/1980”
ORDER BY nume;
1. Se deschide baza de date dorită (de ex. Studenţi), apoi o interogare în Design View
2. Se închide Show Table fără a selecta un tabel.
3. Se deschide SQL View.
4. Se scrie instrucţiunea (SELECT de ex.)
Aceste funcţii se folosesc pentru a calcula totalul, media sau alte date statistice pentru
grupurile de înregistrări cu o valoare de atribut comună (se va adăuga clauza GROUP BY). Se
poate limita şi mai mult rezultatul clauzei GROUP BY folosind calificativul opţional HAVING.
Sintaxa:
SELECT [ALL|DISTINCT|DISTINCTROW]
Functie_agregat(camp) AS nume_alias
[, lista]
FROM nume_tabele
[WHERE condiţie]
GROUP BY criteriu_grupare
[HAVING criteriu_agregat]
[ORDER BY criteriu_sortare]
unde câmpul folosit ca parametru într-o funcţie agregat trebuie să fie numeric.
Ex:
SELECT Avg(nota_fin) AS media, cod_disc
FROM [note]
WHERE cod_spec="CE" AND an="1"
GROUP BY cod_disc
ORDER BY Avg(nota_fin) DESC;
Se obţine ca rezultat media pe discipline a unei specializări (CE).
Se utilizează structura JOIN ON care specifică tabelul care trebuie unit şi relaţia dintre
câmpuri.
Sintaxa:
SELECT [ALL|DISTINCT|DISTINCTROW]
From nume_tabel {INNER|LEFT|RIGHT} JOIN tabel_legatura
ON criteriu_legatura
[ nume_tabel {INNER|LEFT|RIGHT} JOIN tabel_legatura
ON criteriu_legatura ]
[WHERE conditie] [ORDER BY criteriu] unde: nume_tabel {INNER|LEFT|RIGHT}
JOIN tabel_legatura specific[ denumirea tabelului cuplat cu celelalte tabele. Fiecare tabel care
participă într-o uniune trebuie introdus înaintea clauzei JOIN. INNER defineşte o uniune internă,
LEFT, RIGHT definesc uniuni externe.
ON criteriu_legatura defineşte cele două câmpuri care trebuie unite şi relaţia dintre ele.
SELECT lista_câmpuri
INTO tabel_nou
FROM tabel {INNER|LEFT|RIGHT} JOIN tabel_legatura
ON criteriu_legatura
[ nume_tabel {INNER|LEFT|RIGHT} JOIN tabel_legatura
ON criteriu_legatura ]
[WHERE conditie]
SELECT [ALL|DISTINCT|DISTINCTROW]
From nume_tabel {INNER|LEFT|RIGHT} JOIN tabel_legatura
ON criteriu_legatura
[ nume_tabel {INNER|LEFT|RIGHT} JOIN tabel_legatura
ON criteriu_legatura ]
[WHERE conditie_adaugare]
[ORDER BY criteriu]
unde nume_coloana_i este numele unei coloane din tabelă. Când selectăm coloane din mai multe
tabele, forma generală a numelor coloanelor unei tabele este nume_tabela.nume_coloana
deoarece numele coloanelor din diverse tabele pot coincide. Atributul nume_coloana al obiectului
nume_tabela este accesat cu operatorul punct.
Dacă vrem să selectăm toate coloanele tabelei, instrucţiunea SELECT are forma
SELECT *
FROM nume_tabela;
In exemplele următoare vom utiliza tabela PROIECT_ANGAJAT de mai jos. Tabela conţine
angajaţii ce lucrează la diverse proiecte ale unei intreprinderi, cu salariul orar, SAL_ORA şi
numărul de ore prestate la proiect, ORE. Cheia primară a tabelei este formată din câmpurile
ID_PRJ şi ID_ANG. Câmpurile NUME_ANGAJAT şi DPT_ANG sunt de tip text, celelalte de tip
numeric.
PROIECT_ANGAJAT
6. la pasul III se alege titlul interogării; se poate trece la execuţia cererii prin selectarea opţiunii
Open the query to view information, sau se poate modifica proiectarea ei prin selectarea
opţiunii Modify the query design. Pentru execuţia interogării clic pe butonul Finish şi se
afişază tabela rezultat din Figura 8.
Condiţia din clauza WHERE este o expresie booleană ce are ca argumente nume_coloana_1,
nume_coloana_2, …, nume_coloana_k. O linie a tabelei este selectată când condiţia din clauza
WHERE are valoarea adevărat.
Dacă vrem să selectăm toate coloanele liniilor unei tabele ce îndeplinesc o condiţie, înstrucţiunea
SELECT are forma
SELECT *
FROM nume_tabela
WHERE conditie
ORDER BY nume_coloana_1 [ASC | DESC] [, nume_coloana_2 [ASC | DESC] …];
PROIECT_ANGAJAT
, al barei de meniu în vederea Design, afişază lista Query Type cu aceste opţiuni, vezi Figura
22.
Figura 24. Tabela rezultat a cererii din Figura 17 cu câmpul ID_ANG sortat în ordine
descrecătoare.
Condiţii compuse
In următorul exemplu vom selecta angajaţii de la departamentele Suport şi Documentare din tabela
PROIECT_ANGAJAT cu instrucţiunea SELECT de mai jos.
Condiţia din clauza WHERE se completează în celulele DPT_ANG din liniile Criteria şi or.
Formularul corespunzătoare acestei interogări este cel din Figura 25.
Figura 26. Instrucţiunea SELECT corespunzătoare formei din Figura 25. Tabela
rezultat este cea din Figura 27.
Implicit, în fereastra de proiectare din Figura 28 există o singură linie or. Se pot adăuga mai multe
linii or cu un clic pe linia or existentă şi apoi clic pe meniul Insert Rows. Liniile or se pot şterge
cu un clic pe linie şi apoi clic pe meniul Edit Delete Rows.
afişază casete de dialog pentru introducerea parametrilor interogării. Acest lucru se face prin
introducerea condiţiei în câmpul Criteria, iar parametri sunt înlocuiţi cu mesaje scrise între
paranteze drepte, [ şi ]. La efectuarea interogării, Access afişază casete de dialog cu mesajele ce
au fost introduse între parantezele drepte.
Vom exemplifica acest lucru prin crearea unei interogări a tabelei PROIECT_ANGAJAT în care
vrem să selectăm angajaţii cu salarii orare între două limite, care să fie parametrii interogării, pe
care îi vom introduce în casete de dialog afişate de Access. Definiţia tabelei PROIECT_ANGAJAT
este repetată mai jos.
PROIECT_ANGAJAT
1. creăm un formular de interogare cu aplicaţia Create Query by using Wizard, în care selectăm
câmpurile ID_ANG, NUME_ANGAJAT, DPT_ANG şi SAL_ORA,
2. deschidem fromularul creat în vederea Query Design, ca în Figura 32,
3. în câmpul Criteria al coloanei COST_ORA introducem condiţia
Between [cost minim ora] And [cost maxim ora], ca în Figura 32.
Ca un alt exemplu, vom selecta toţi angajaţii din tabela PROIECT_ANGAJAT al căror nume
conţine un anumit şir de caractere. Procedura este următoarea:
1. creăm un formular de interogare cu aplicaţia Create Query by using Wizard, în care selectăm
câmpul NUME_ANGAJAT,
2. deschidem fromularul creat în vederea Query Design şi introducem condiţia ca în Figura 35.
Condiţia pentru testarea unui şir de caractere are forma
LIKE expresie regulată
După cum s-a arătat într-o lucrare anterioară, în cazul nostru expresia regulată are forma “*sir*”.
Acest şablon se construieşte ca “*” & sir & “*”, unde sir este şirul de caractere ce va fi introdus
într-o casetă de dialog. Pentru acesta condiţia va fi scrisă
LIKE “*” & [Litere in nume] & “*”
vezi Figura 35. Reamintim că operatorul & concatenează şiruri de caractere.
Reuniunea tabelelor
Una dintre operaţiile ce se pot aplica asupra tabelelor rezultat este reuniunea acestor tabele. Pentru
reuniune, liniile tabelelor trebuie să aibe aceleaşi coloane. Reuniunea tabelelor se face cu
instrucţiunea SQL UNION cu forma
SELECT coloane
FROM nume_tabela_1
UNION
SELECT coloane
FROM nume_tabela_2;
SITUATIE_FINANCIARA
DATE_CONTABILE
Vom crea o tabelă ce reuneşte liniile celor două tabele în felul următor:
1. se afişază fereastra Database; în partea stângă, se selectează opţiunea Queries; în partea dreaptă
se afişază opţiunile existente, Create query by using wizard şi Create query in Design view
şi interogările (Queries) existente,
2. clic pe opţiunea Create query in Design View care afişază caseta Show Table; clic pe butonul
Close,
3. clic pe meniul Query SQL Specific, şi în submeniul afişat, clic pe opţiunea Union, vezi Figura
38,
4. se afişază caseta de text din Figura 39, în care se introduce instrucţiunea UNION din Figura
39,
Funcţia Semnificaţia
AVG Valoarea medie
MIN Valoarea minimă
MAX Valoarea maximă
SUM Suma valorilor din coloană
VAR Dispersia
STD Abaterea medie pătratică
Tabelul 5. Funcţii SQL pentru agregarea datelor în instrucţiunea SELECT.
Cea mai simplă interogare a unei baze de date cu utilizarea acestor funcţii este aplicarea lor asupra
unor coloane dintr-o tabelă. Acestă interogare corespunde instrucţiunii SELECT următoare
In acest caz nu s-a precizat numele coloanelor din tabela rezultat a interogării, şi aplicaţia atribuie
acestor coloane nişte nume standard. Instrucţiunea SELECT are şi o formă în care putem atribui
coloanelor tabelei rezultat ce nume dorim. Această formă este
Vom exemplifica utilizarea acestor funcţii la tabela VANZARI, proiectată în Figura 40. Tabela cu
date este cea din Figura 41.
Modificăm Expr1 în celula liniei Field în AN 2001, ca în Figura 49 şi la fel numele celorlalte
coloane pentru a fi mai semnificative. Tabela rezultat este cea din Figura 50.
Categoriile de cheltuieli vor fi afişate pe coloane, trimestrele pe linii şi suma cheltuielilor pe tipuri
de cheltuieli şi pe trimestre în celulele tabelei.
Vom crea această interogare cu aplicaţie vrăjitor.
1. se afişază fereastra Database; în partea stângă, se selectează opţiunea Queries,
PDF created with pdfFactory Pro trial version www.pdffactory.com
Microsoft Access Curs 12
2. clic pe butonul New al barei de instrumente care afişază caseta New Query din Figura 54; se
selectează opţiunea Crosstab Query Wizard, care lansează aplicaţia vrăjitor,
Figura 55. Pasul I. Se aleg tabelele şi interogările din care se vor selecta câmpurile interogării.
4. la pasul II al se afişază câmpurile disponibile şi se aleg maxim trei ale căror valori vor constitui
antetele liniilor. In cazul nostru alegem câmpul TRIMESTRU, vezi Figura 56; clic pe butonul
Next,
Figura 56. Pasul II. Se aleg câmpurile ale căror valori vor constitui antetele liniilor.
5. la pasul III se afişază câmpurile disponibile şi se aleg cele ale căror valori vor constitui antetele
coloanelor. In cazul nostru alegem câmpul CATEGORIE, vezi Figura 57; clic pe butonul Next,
Figura 57. Pasul III. Se aleg câmpurile ale căror valori vor constitui antetele coloanelor.
PDF created with pdfFactory Pro trial version www.pdffactory.com
Microsoft Access Curs 12
6. la pasul IV se afişază câmpurile disponibile şi se aleg cele ale căror valori vor fi afişate la
intersecţia liniilor şi coloanelor. Asupra valorilor acestor câmpuri se va aplica o funcţie de
sumarizare din cele afişate în lista Function. In cazul nostru se alege câmpul VALOARE şi
funcţia de sumarizare Sum, vezi Figura 58. Este posibil de a sumariza în plus rezultatele fiecărei
linii într-un câmp separat. Pentru aceasta se va marca butonul Yes, include row sums; clic pe
butonul Next,
Figura 58. Pasul IV. Se aleg câmpurile ale căror valori vor fi afişate la intersecţia liniilor şi
coloanelor.
7. la pasul V se alege numele interogării create, vezi Figura 59. Clic pe butonul Finish şi se afişază
tabela rezultat din Figura 60.
Menţionăm că tabela rezultat conţine şi un câmp Total Of VALOARE ce sumarizează valorile
liniilor. Acest câmp apare deoarece la pasul IV am marcat butonul Yes, include row sums.
CATEGORIE I II III IV
Materiale x x x x
Piese x x x x
Utililaje x x x x
Probleme propuse
In tabelele de mai jos, atributele ce constituie cheia primară a tabelei sunt subliniate.
1. Fie tabela PROIECTE_ANGAJATI de mai jos. Coloanele ID_PRJ, ID_ANG, SAL_ORA şi
ORE sunt de tip numeric, celelalte de tip text.
PROIECTE_ANGAJATI
2. Fie tabela ANGAJATI de mai jos. Coloanele ID şi SALARIU sunt de tip numeric, celelalte
coloane sunt de tip text.
ANGAJATI
Se va proiecta tabela ANGAJATI. Se vor defini condiţiile de validare ID >= 100, SALARIU >=
600.
Se vor crea formulare de interogare pentru următoarele cereri:
▪ să se selecteze toţi angajaţii intreprinderii,
▪ să se selecteze facultăţile absolvite,
▪ să se selecteze angajaţii cu salarii mai mari ca 1500,
▪ să se selecteze angajaţii cu salarii mai mici sau egale cu 1500,
▪ să se selecteze angajaţii ce au absolvit facultăţile Electrotehnica, Mecanica, Calculatoare,
▪ să se selecteze angajaţii ce au absolvit alte facultăţi decât Electrotehnica, Mecanica şi
Calculatoare.
3. Fie tabela SITUATIE_FINANCIARA de mai jos cu datele contabile ale unei interprinderi.
Toate coloanele sunt de tip numeric.
SITUATIE_FINANCIARA
AN VENITURI CHELTUIELI
2001 420 370
2002 470 410
2003 550 500
2004 620 548
2005 705 590
2006 690 620
Fie tabela DATE_CONTABILE de mai jos cu datele contabile ale aceeaşi intreprinderi pe
următorii trei ani.
DATE_CONTABILE
AN VENITURI CHELTUIELI
2007 712 670
2008 722 690
2009 695 690
Să se creeze o interogare care să calculeze reuniunea celor două tabele. Se vor proiecta cele două
tabele şi se vor defini condiţiile de validare VENITURI > 0, CHELTUIELI > 0.
validare VALOARE > 0, LUNA cuprinsă între 1 şi 12, câmpurile NUME şi PRENUME nenule.
In câmpul NUMAR_TELEFON numerele încep cu prefixul 0251. Se vor introduce reguli de
validare şi mesaje de eroare pentru fiecare câmp. Se va crea o mască pentru numerele de telefon
de forma
(0000) 000-000
▪ să se selecteze toate facturile telefonice cuprinse între două luni ce vor fi parametri.
Intrebări de control
1. Care este forma instrucţiunii SELECT pentru selectarea unor coloane dintr-o tabelă?
2. Care este forma instrucţiunii SELECT pentru selectarea unor linii dintr-o tabelă ce satisfac
anumite criterii?
3. Cum se crează o interogare cu parametri?
4. Cum se face sortarea liniilor tabelei rezultat?
5. Care este forma instrucţiunii UNION şi la ce se utilizează?
Tabela A
a1 a2 a3 a4 a5 a6
Tabela B
b1 b2 b3 b4 b5 a1
Tabela C
c1 c2 c3 c4 C5 a1
Exemple:
SELECT DISTINCT a5
FROM A
WHERE a5>1000;
SELECT DISTINCT a5
FROM A
WHERE a5>1000 AND a3=”text”;
SELECT DISTINCT a5
FROM A
WHERE a5 (NOT) BETWEEN 1000 AND 10000;
SELECT DISTINCT a5
FROM A
WHERE a3 LIKE ”*text”;
SELECT a2,a4,a5
FROM A
WHERE a2 IN(1500, 13000, 14000)
ORDER BY a2 ASC, a5 DESC;
Interogări de grupare
SELECT [domeniu: ALL/DISTINCT/DISTINCTROW] listă selecţie câmpuri
FROM nume tabelă(e)
[WHERE criteriu de selecţie]
[GROUP BY câmp(uri) de grupare]
[HAVING criteriul câmpului de grupare]
[ORDER BY listă câmpuri criterii de ordonare {ASC/DESC}];
Compuneri interne
SELECT [domeniu] listă selecţie câmpuri din tabele diferite
FROM nume tabelă_1
{INNER/LEFT/RIGHT} JOIN nume tabelă_2
PDF created with pdfFactory Pro trial version www.pdffactory.com
Microsoft Access Curs 12
ON criteriu de asociere
[WHERE criteriu de compunere
[ORDER BY listă câmpuri criterii de ordonare {ASC/DESC}];
Subinterogări
Interogări pe o tabelă
SELECT [domeniu] listă selecţie câmpuri
FROM nume tabelă
[WHERE criteriu de selecţie pentru o altă interogare
(SELECT [domeniu] listă selecţie câmpuri
FROM nume tabelă
[WHERE criteriu de selecţie pentru sub-interogare)
[ORDER BY listă câmpuri criterii de ordonare {ASC/DESC}];
SELECT a1,a2,a5
FROM A
WHERE A.a1=(SELECT a1 FROM B WHERE b3>25000);
„să se afişeze pentru câmpul a1(de ex. furnizor), media câmpului b3 (de ex. preţul) pentru fiecare
câmp b1, pentru care există o condiţie pentru câmpul b4”
TRANSFORM Avg(b3) AS [Media b3]
SELECT A.a1
FROM A INNER JOIN B ON A.a1=B.a1
WHERE b4=”condiţie”
GROUP BY A.a1
ORDER BY A.a1
PIVOT B.b1
Interogări de creare a unei tabele noi, plecând de la conţinutul şi structura unei tabele
existente
SELECT [domeniu] listă câmpuri INTO
tabelă_nouă
FROM tabelă_sursă [WHERE criteriu de adăugare];
Ex:
DELETE *
FROM D
DELETE *
FROM C
WHERE b3>#01/01/2000# AND #31/12/2000#;
Interogări de modificare
UPDATE nume_tabelă
SET nume_câmp1=valoare1 [,nume_câmp2=valoare2]…..
[WHERE criteriu_de_actualizare];
Exemplu:
UPDATE B
SET b3=”bbb3”
WHERE b3=”bb3”;