Sunteți pe pagina 1din 41

 O interogare (Query) este un obiect Access care se construieşte

în jurul unei instrucţiuni SQL, SQL (Structured Query Language)


fiind un limbaj pentru accesarea bazelor de date relaţionale.
 Interogările sunt folosite pentru extragerea de informaţii dintr-o
baza de date.
 Interogările în Access sunt obiecte distincte care se stochează
individual în baza de date:
 se creează cu o comandă specializată
 sunt vizualizate în lista obiectelor Access din partea stângă a
ecranului de lucru
 la nevoie se pot şterge din baza de date, folosind tot o comandă
specializată.
 Cu ajutorul programului asistent Query Wizard

 Interactiv, cu ajutorul proiectantului vizual Query Design

 Manual, de la tastatură, într-o fereastră dedicată, cu


respectarea unor reguli de sintaxă bine definite – în mod de
lucru SQL View
 Cu ajutorul comenzii Run din secţiunea de meniu Query
Tools / Design.
 La momentul lansării în execuţie interogarea este mai întâi
verificată din punct de vedere al sintaxei; dacă sunt
identificate erori de sintaxă, ele sunt semnalate prin mesaje
de avertizare şi execuţia este amânată. Erorile de sintaxă
vor trebui corectate, după care interogarea va putea fi
lansată încă o dată în execuţie pentru a se putea vizualiza
rezultatele sale.

OBSERVAŢIE: Într-o fereastră de editare se poate tipări o singură interogare la un


moment dat – pentru tipărirea unei noi interogări trebuind deschisă o nouă fereastră de
editare, tot cu ajutorul comenzii Create / Query Design.
SELECT <listă de câmpuri> FROM < tabel>
WHERE <condiţie>
ORDER BY <lista de câmpuri> [ASC /DESC]
 <listă de câmpuri>: se indică unul sau mai multe câmpuri / coloane din tabel
care vor fi selectate şi afişate prin comanda de interogare;
 FROM < tabel>: se precizează numele tabelului din care se aleg informaţiile
care vor fi extrase şi afişate;
 WHERE <condiţie>: se foloseşte pentru a indica un criteriu de filtrare a
înregistrărilor / liniilor tabelului, astfel încât vor fi selectate doar înregistrările
care îndeplinesc acel criteriu;
 ORDER BY <lista de câmpuri> [ASC /DESC]: se foloseşte pentru a defini un
criteriu de ordonare a înregistrărilor selectate din tabel, după valorile specificate
în lista de câmpuri; ordinea implicită în care sunt aşezate înregistrările este cea
crescătoare, [ASC], iar dacă dorim ca înregistrările să fie aşezate în ordine
descrescătoare trebuie să folosim explicit parametrul [DESC].
SELECT <listă de câmpuri> FROM < tabel>

REGULI DE SINTAXĂ – specificarea câmpurilor din tabel:


 Numele câmpurilor se indică exact, fără greşeli gramaticale şi
incluzând toate semnele de punctuaţie (virgule) sau spaţiile utilizate;
 Numele câmpurilor se încadrează între paranteze pătrate;
 Dacă lista conţine mai multe câmpuri, numele lor vor fi separate prin
virgule – la sfârşitul listei nu se pune nici un semn de punctuaţie.

OBSERVAŢIE: Dacă se lucrează cu câmpuri


având numele format dintr-un singur cuvânt
(nume simple), încadrarea lor între paranteze
pătrate este opţională.
Exemplu: Afişaţi din tabelul „Pacienţi” numele, prenumele şi data
naşterii pacienţilor.

SELECT [NUME, PRENUME], [DATA NASTERII]


FROM PACIENTI

Baza de date utilizată pentru exemplificare: LP3_4_Pacienti_RO.


Exemplu: Afişaţi din tabelul „Pacienţi” vârsta, anamneza,
înălţimea şi greutatea pacienţilor.

SELECT [VARSTA], [ANAMNEZA], [INALTIME],


[GREUTATE] FROM PACIENTI

Baza de date utilizată pentru exemplificare: LP3_4_Pacienti_RO.


Exemplu: Afişaţi din tabelul „Pacienţi” numele, prenumele,
judeţul şi localitatea de provenienţă ale pacienţilor.

SELECT [NUME, PRENUME], [JUDET], [LOCALITATE]


FROM PACIENTI

Baza de date utilizată pentru exemplificare: LP3_4_Pacienti_RO.


Exemplu: Afişaţi toate câmpurile din tabelul „Pacienţi”.

SELECT * FROM PACIENTI

Baza de date utilizată pentru exemplificare: LP3_4_Pacienti_RO.


SELECT * FROM < tabel>
WHERE < condiţie>
Condiţia este o expresie matematică în Access, scrisă folosind un set
de reguli de editare stricte, care depind în principal de tipul de dată al
câmpurilor utilizate.

TIPURI DE CONDIŢII:
SIMPLE: Forma generală:
[nume câmp] operator <valoare>
Semnificaţie: Valoarea este căutată în câmpul specificat, în
modalitatea descrisă de operator, şi sunt afişate înregistrările în care a
fost identificată.
Dificultate: Regulile de exprimare a valorii şi operatorii disponibili
depind de tipul de dată al câmpului în care se realizează căutarea.
SELECT * FROM < tabel>
WHERE < condiţie>
TIPURI DE CONDIŢII:
COMPUSE: Se obţin prin combinarea mai multor condiţii simple, cu
ajutorul operatorilor logici AND sau OR:
Forma generală:
<condiţie 1> AND <condiţie 2> AND … AND <condiţie n>
Semnificaţie: Se doreşte ca cele n condiţii specificate să fie
îndeplinite simultan.

<condiţie 1> OR <condiţie 2> OR … OR <condiţie n>


Semnificaţie: Se doreşte ca măcar una dintre cele n condiţii
specificate să fie îndeplinită.
[nume câmp] operator <valoare>

REGULI DE SINTAXĂ:
 Valoarea căutată se va specifica întotdeauna între ghilimele ‘ ‘

 Sunt disponibili în principal 3 operatori, cu semnificaţii diferite:


 Operatorul „=”: identifică potrivirile exacte, adică înregistrările care conţin în câmpul
specificat valoarea indicată şi numai aceea:
[nume câmp] = ‘valoare’
 Operatorul „IN”: identifică potrivirile multiple; se utilizează împreună cu o listă de
valori indicate în paranteze rotunde şi selectează înregistrările care conţin în câmpul
specificat una dintre valorile precizată în listă:
[nume câmp] IN ( ‘valoare 1’, ‘valoare 2’, ‘valoare 3’ )
 Operatorul „LIKE”: identifică potrivirile parţiale, adică înregistrările care conţin în
câmpul specificat valoarea indicată, inclusă însă într-un conţinut mai larg.
[nume câmp] LIKE ‘*valoare*’ : valoarea va fi căutată în interiorul câmpului specificat
[nume câmp] LIKE ‘valoare*’ : valoarea va fi căutată doar la începutul câmpului specificat
[nume câmp] LIKE ‘*valoare’ : valoarea va fi căutată doar la sfârşitul câmpului specificat
Exemplu: Afişaţi femeile din tabelul „Pacienţi”.
CONDIŢIE SIMPLĂ, POTRIVIRE EXACTĂ

SELECT * FROM PACIENTI


WHERE [GEN] = 'F'

Baza de date utilizată pentru exemplificare: LP3_4_Pacienti_RO.


Exemplu: Afişaţi folosind tabelul „Pacienţi”, pacienţii din
localitatea Iaşi.
CONDIŢIE SIMPLĂ, POTRIVIRE EXACTĂ

SELECT * FROM PACIENTI


WHERE [LOCALITATE] = 'IASI'

Baza de date utilizată pentru exemplificare: LP3_4_Pacienti_RO.


Exemplu: Afişaţi folosind tabelul „Pacienţi”, pacienţii cu domiciliu
urban, din judeţul Vaslui.
CONDIŢIE COMPUSĂ, POTRIVIRE EXACTĂ

SELECT * FROM PACIENTI


WHERE [DOMICILIU] = 'U' AND [JUDET] = 'VS'

Baza de date utilizată pentru exemplificare: LP3_4_Pacienti_RO.


Exemplu: Afişaţi folosind tabelul „Pacienţi”, pacienţii din judeţele
Iaşi, Vaslui şi Botoşani.
CONDIŢIE SIMPLĂ, POTRIVIRE MULTIPLĂ

SELECT * FROM PACIENTI


WHERE [JUDET] IN ('IS', 'VS', 'BT')

Baza de date utilizată pentru exemplificare: LP3_4_Pacienti_RO.


Exemplu: Afişaţi folosind tabelul „Pacienţi”, pacienţii care prezintă
cefalee.
CONDIŢIE SIMPLĂ, POTRIVIRE PARŢIALĂ

SELECT * FROM PACIENTI


WHERE [ANAMNEZA] LIKE '*CEFALEE*'
Sunt identificate 31 de înregistrări, pentru care cuvântul
„cefalee” a fost găsit în interiorul câmpului ANAMNEZĂ.

SELECT * FROM PACIENTI


WHERE [ANAMNEZA] LIKE 'CEFALEE*'
Sunt identificate 20 de înregistrări, pentru care cuvântul
„cefalee” a fost găsit la începutul câmpului ANAMNEZĂ.

SELECT * FROM PACIENTI


WHERE [ANAMNEZA] LIKE ‘*CEFALEE'
Este identificată o singură înregistrare, pentru care cuvântul
„cefalee” a fost găsit la sfârşitul câmpului ANAMNEZĂ.

Baza de date utilizată pentru exemplificare: LP3_4_Pacienti_RO.


Exemplu: Afişaţi folosind tabelul „Pacienţi”, pacienţii al căror
nume începe cu litera „G”.
CONDIŢIE SIMPLĂ, POTRIVIRE MULTIPLĂ

SELECT * FROM PACIENTI


WHERE [NUME, PRENUME] LIKE 'G*'

Baza de date utilizată pentru exemplificare: LP3_4_Pacienti_RO.


[nume câmp] operator <valoare>

REGULI DE SINTAXĂ:
 Valoarea căutată se va specifica întotdeauna direct, fără ghilimele.
 Numerele reale se indică folosind punctul ca separator zecimal (ex. 1.75)

 Sunt disponibili următorii operatori:


=, <>, <, <=, >, >=, BETWEEN
Exemplu: Afişaţi folosind tabelul „Pacienţi”, pacienţii cu vârsta de
30 de ani.

SELECT * FROM PACIENTI


WHERE [VARSTA] = 30

Baza de date utilizată pentru exemplificare: LP3_4_Pacienti_RO.


Exemplu: Afişaţi folosind tabelul „Pacienţi”, pacienţii cu vârsta
între 30 şi 40 de ani.

SELECT * FROM PACIENTI


WHERE [VARSTA] BETWEEN 30 AND 40

Baza de date utilizată pentru exemplificare: LP3_4_Pacienti_RO.


Exemplu: Afişaţi folosind tabelul „Pacienţi”, bărbaţii cu vârsta
peste 50 ani.

SELECT * FROM PACIENTI


WHERE [GEN]='M' AND [VARSTA] >=50

Baza de date utilizată pentru exemplificare: LP3_4_Pacienti_RO.


[nume câmp] operator <valoare>

REGULI DE SINTAXĂ:
 Valoarea căutată se va specifica întotdeauna între semnele # #, în
formatul american de dată calendaristică:
#ll/zz/aaaa#

 Sunt disponibili următorii operatori:


=, <>, BETWEEN
alături de câteva funcţii de conversie a datelor calendaristice, respectiv:
YEAR( [dată calendaristică] ) – returnează anul din data calendaristică
introdusă;
MONTH ( [dată calendaristică] ) – returnează luna din data calendaristică
introdusă;
DAY( [dată calendaristică] ) – returnează ziua din data calendaristică
introdusă;
Exemplu: Afişaţi folosind tabelul „Pacienţi”, pacienţii născuţi pe
data de 30 mai 1982.

SELECT * FROM PACIENTI


WHERE [DATA NASTERII] = #5/30/1982#

Baza de date utilizată pentru exemplificare: LP3_4_Pacienti_RO.


Exemplu: Afişaţi folosind tabelul „Pacienţi”, pacienţii născuţi în
perioada cuprinsă între 1 mai 1982 şi 30 septembrie 1982.

SELECT * FROM PACIENTI


WHERE [DATA NASTERII] BETWEEN #5/1/1982# AND
#9/30/1982#

Baza de date utilizată pentru exemplificare: LP3_4_Pacienti_RO.


Exemplu: Afişaţi folosind tabelul „Pacienţi”, pacienţii născuţi în
anul 1986.

SELECT * FROM PACIENTI


WHERE YEAR( [DATA NASTERII] ) = 1986

Baza de date utilizată pentru exemplificare: LP3_4_Pacienti_RO.


Exemplu: Afişaţi folosind tabelul „Pacienţi”, pacienţii născuţi în
luna iulie, indiferent de an.

SELECT * FROM PACIENTI


WHERE MONTH( [DATA NASTERII] ) = 7

Baza de date utilizată pentru exemplificare: LP3_4_Pacienti_RO.


Exemplu: Afişaţi folosind tabelul „Pacienţi”, pacienţii născuţi într-o
zi de 21, indiferent de lună şi an.

SELECT * FROM PACIENTI


WHERE DAY( [DATA NASTERII] ) = 21

Baza de date utilizată pentru exemplificare: LP3_4_Pacienti_RO.


Exemplu: Afişaţi folosind tabelul „Pacienţi”, pacienţii născuţi pe
data de 30 mai 1982.

SELECT * FROM PACIENTI


WHERE YEAR( [DATA NASTERII] ) = 1982 AND
MONTH( [DATA NASTERII] ) = 5 AND
DAY( [DATA NASTERII] ) = 30

Baza de date utilizată pentru exemplificare: LP3_4_Pacienti_RO.


[nume câmp] operator <valoare>

REGULI DE SINTAXĂ:
 Singurele valori care pot fi căutate sunt:
YES, TRUE, ON (valori echivalente)
NO, FALSE, OFF (valori echivalente)
 Valoarea căutată se va specifica direct, fără ghilimele, deoarece este
cuvânt rezervat, recunoscut automat de Access;

 Sunt disponibili următorii operatori:


=, <>
Exemplu: Afişaţi folosind tabelul „Pacienţi”, pacienţii care au
asigurare de sănătate şi apoi pacienţii care nu au asigurare de
sănătate.

SELECT * FROM PACIENTI


WHERE [CAS] = YES

SELECT * FROM PACIENTI


WHERE [CAS] = NO

Baza de date utilizată pentru exemplificare: LP3_4_Pacienti_RO.


SELECT * FROM < tabel>
WHERE < condiţie>
ORDER BY [câmp] ASC / DESC
Înregistrările selectate prin condiţia definită vor fi afişate în ordinea
valorilor din câmpul specificat după parametrul ORDER BY.

Ordinea implicită în care sunt aşezate înregistrările este cea crescătoare,


[ASC]; dacă dorim ca înregistrările să fie aşezate în ordine
descrescătoare trebuie să folosim explicit parametrul [DESC].
Exemplu: Afişaţi folosind tabelul „Pacienţi”, pacienţii în ordine
alfabetică după numele lor.

SELECT * FROM PACIENTI


ORDER BY [NUME, PRENUME]

Baza de date utilizată pentru exemplificare: LP3_4_Pacienti_RO.


Exemplu: Afişaţi folosind tabelul „Pacienţi”, pacienţii cu asigurare
de sănătate, în ordine crescătoare a vârstelor lor.
Afişaţi apoi pacienţii cu asigurare de sănătate, în ordine
descrescătoare a vârstelor lor.
SELECT * FROM PACIENTI
WHERE [CAS]= YES
ORDER BY [VARSTA]

SELECT * FROM PACIENTI


WHERE [CAS]= YES
ORDER BY [VARSTA] DESC

Baza de date utilizată pentru exemplificare: LP3_4_Pacienti_RO.


Exemplu: Afişaţi folosind tabelul „Pacienţi”, femeile din judeţul
Suceava în ordine alfabetică a numelor lor.

SELECT * FROM PACIENTI


WHERE [GEN] = 'F' AND [JUDET] = 'SV'
ORDER BY [NUME, PRENUME]

Baza de date utilizată pentru exemplificare: LP3_4_Pacienti_RO.


SELECT * FROM < tabel>
WHERE < condiţie>
ORDER BY [câmp] ASC / DESC

Criteriile referitoare la selecţia de coloane şi de linii dintr-un tabel pot fi


combinate fără restricţii, atât între ele cât şi cu ceilalţi parametri din
comanda SELECT (în particular ORDER BY şi INTO).
Exemplu: Afişaţi folosind tabelul „Pacienţi”, numele, prenumele şi
anamneza femeilor cu vârsta peste 30 de ani.

SELECT [NUME, PRENUME], [ANAMNEZA]


FROM PACIENTI
WHERE [GEN] = 'F' AND [VARSTA] >=30

Baza de date utilizată pentru exemplificare: LP3_4_Pacienti_RO.

S-ar putea să vă placă și