Sunteți pe pagina 1din 22

Clauze SQL de baz: SELECT, FROM i

WHERE
O instruciune SQL are forma general:

SELECT cmp_1
FROM tabel_1
WHERE criteriu_1
;
NOTE

Access ignor sfriturile de linie ntr-o instruciune SQL. Totui, luai n calcul utilizarea unei
linii separate pentru fiecare clauz, pentru a contribui la mbuntirea lizibilitii instruciunilor SQL
pentru dvs. i pentru alte persoane.

Fiecare instruciune SELECT se termin prin punct i virgul (;). Semnul punct i virgul
poate aprea la sfritul ultimei clauze sau separat pe o linie la sfritul instruciunii SQL.

Un exemplu din Access


n continuare se ilustreaz cum poate arta n Access o instruciune SQL pentru o interogare de selectare simpl:

1. Clauza SELECT
2. Clauza FROM
3. Clauza WHERE
Acest exemplu de instruciune SQL semnific Selectai datele stocate n cmpuri denumite Adres de po t electronic i
Firm din tabelul denumit Persoane de contact, mai precis nregistrrile n care valoarea cmpului Localitate este Sibiu.
S privim exemplul, cte o clauz o dat, pentru a vedea cum funcioneaz sintaxa SQL.

Clauza SELECT
SELECT [Adres de pot electronic], Firm

Aceasta este clauza SELECT. Ea cuprinde un operator (SELECT) urmat de doi identificatori ([Adres de po t electronic]
i Firm).
Dac un identificator conine spaii sau caractere speciale (cum ar fi Adres de po t electronic), trebuie cuprins ntre
paranteze drepte.
O clauz SELECT nu trebuie s menioneze ce tabele conin cmpurile i nu poate specifica nicio condi ie pe care s o
ndeplineasc datele de inclus.
Clauza SELECT apare ntotdeauna n faa clauzei FROM ntr-o instruciune SELECT.

Clauza FROM
FROM Contacte
Aceasta este clauza FROM. Aceasta cuprinde un operator (FROM) urmat de un identificator (Contacte).
O clauz FROM nu listeaz cmpurile care s fie selectate.

Clauza WHERE
WHERE Localitate="Sibiu"
Aceasta este clauza WHERE. Ea cuprinde un operator (WHERE) urmat de o expresie (Localitate="Sibiu").
NOT Spre deosebire de clauzele SELECT i FROM, clauza WHERE nu este un element obligatoriu al unei instruc iuni

SELECT.

Mai multe despre clauza SELECT


ntr-o instruciune SELECT, clauza SELECT listeaz cmpurile care conin datele pe care dorii s le utiliza i.

Utilizarea parantezelor drepte pentru a ncadra


identificatorii
Utilizai paranteze drepte pentru a ncadra numele unui cmp dintr-o clauz SELECT. Dac numele nu conine spa ii sau
caractere speciale (cum ar fi semne de punctuaie), parantezele drepte sunt opionale. Dac numele con ine spa ii sau
caractere speciale, trebuie s utilizai paranteze.
SFAT Un nume care conine spaii este mai uor de citit i poate reduce timpul la proiectarea formularelor i rapoartelor,

dar poate ajunge s mreasc timpul la scrierea instruciunilor SQL. Trebuie s ave i n vedere acest lucru cnd denumi i
obiecte din baza de date.

Dac instruciunea SQL are dou sau mai multe cmpuri cu acelai nume, trebuie s aduga i numele sursei de date a
fiecrui cmp la numele de cmp din clauza SELECT. Utilizai acelai nume pentru sursa de date pe care l utiliza i i n
clauza FROM.

Selectarea tuturor cmpurilor


Dac dorii s includei toate cmpurile dintr-o surs de date, listai toate cmpurile individual n clauza SELECT sau
utilizai un metacaracter asterisc (*). Cnd utilizai un asterisc, Access determin atunci cnd se execut interogarea ce
cmpuri conine sursa de date i include toate cmpurile n interogare. Acest lucru v ajut s v asigura i c interogarea
rmne actualizat dac se adaug cmpuri noi la sursa de date.
ntr-o instruciune SQL, avei posibilitatea s utilizai asteriscul cu una sau mai multe surse de date. Dac utiliza i asteriscul
i exist mai multe surse de date, trebuie s includei numele sursei de date mpreun cu asteriscul, pentru ca Access s
poat determina din ce surs de date s includ toate cmpurile.
De exemplu, s presupunem c dorii s selectai toate cmpurile din tabelul Comenzi, dar doar adresa de po t electronic
din tabelul Persoane de contact. Clauza SELECT poate arta astfel:
SELECT Comenzi.*, [Persoane de contact].[Adres de pot electronic]
NOT Urmrii contextele n care ai utilizat asteriscul. Dac sunt adugate mai trziu cmpuri noi la sursa de date i nu a i

planificat innd cont de ele, rezultatele interogrii pot fi diferite de ce v dorii.

Selectarea valorilor distincte


Dac tii c instruciunea dvs. va selecta date redundante i ai prefera mai degrab s vede i valori distincte, utiliza i
cuvntul cheie DISTINCT n clauza SELECT. De exemplu, s presupunem c fiecare client al dvs. reprezint interese
diferite i c unii dintre acetia utilizeaz acelai numr de telefon. Dac dorii s v asigura i c vede i o singur dat
acelai numr de telefon, clauza dvs. SELECT arat astfel:
SELECT DISTINCT [txtTelClient]

Utilizarea de nume de substituie pentru cmpuri sau


expresii: cuvntul cheie AS
Avei posibilitatea s modificai eticheta afiat pentru orice cmp n vizualizarea foaie de date utiliznd cuvntul cheie AS
i un alias de cmp n clauza SELECT. Un alias de cmp este un nume pe care l asocia i unui cmp dintr-o interogare
pentru ca rezultatele s fie mai simplu de citit. De exemplu, dac dorii s selecta i datele dintr-un cmp denumit
txtTelClient i cmpul conine numere de telefon ale clienilor, avei posibilitatea s mbunt ii lizibilitatea rezultatelor
utiliznd un alias de cmp din instruciunea SELECT, dup cum urmeaz:
SELECT [txtTelClient] AS [Telefon client]
NOT Trebuie s utilizai un alias de cmp atunci cnd utilizai o expresie ntr-o clauz SELECT.

Selectarea prin utilizarea unei expresii

Uneori, dorii s privii calculele pe baza datelor dvs. sau s regsii doar o parte a datelor cmpului. De exemplu, s
presupunem c dorii s returnai anul n care s-au nscut clienii, pe baza datelor din cmpul DatNatere din baza de date.
Clauza SELECT poate arta astfel:
SELECT DatePart("yyyy",[DatNatere]) AS [Anul naterii]
Aceast expresie cuprinde funcia DatePart i dou argumente - yyyy (o constant) i [DatNatere] (un identificator).
Avei posibilitatea s utilizai drept cmp orice expresie valid, dac expresia are ca rezultat o singur valoare atunci cnd
este dat o singur valoare de intrare.
nceputul paginii

Mai multe despre clauza FROM


ntr-o instruciune SELECT, clauza FROM specific tabelele sau interogrile care con in datele pe care clauza SELECT le
va utiliza.
S presupunem c dorii s aflai numrul de telefon al unui client anume. Presupunnd c tabelul care con ine cmpul care
stocheaz aceste date se numete tblClieni, clauza FROM ar arta astfel:
FROM tblClieni

Utilizarea parantezelor drepte pentru a ncadra


identificatorii
Utilizai paranteze drepte pentru a ncadra numele unui cmp. Dac numele nu con ine spa ii sau caractere speciale (cum ar
fi semne de punctuaie), parantezele drepte sunt opionale. Dac numele conine spaii sau caractere speciale, trebuie s
utilizai paranteze.
SFAT Un nume care conine spaii este mai uor de citit i poate reduce timpul la proiectarea formularelor i rapoartelor,

dar poate ajunge s mreasc timpul la scrierea instruciunilor SQL. Trebuie s ave i n vedere acest lucru cnd denumi i
obiecte din baza de date.

Utilizarea numelor de substituie pentru sursele de


date
Avei posibilitatea s utilizai alt nume pentru a face referire la o surs de date dintr-o instruc iune SELECT utiliznd un
alias de tabel ntr-o clauz FROM. Un alias de tabel este un nume pe care l atribuii unei surse de date dintr-o interogare
atunci cnd utilizai o expresie ca surs de date sau pentru a facilita tastarea i citirea instruc iunii SQL. Acest lucru poate fi
util mai ales dac numele sursei de date este lung sau greu de citit, mai ales atunci cnd exist n tabele diferite mai multe
cmpuri care au acelai nume.
De exemplu, dac dorii s selectai date din dou cmpuri, ambele denumite ID, dintre care unul provine din tabelul
tblClieni i altul din tabelul tblComenzi, clauza SELECT poate arta astfel:
SELECT [tblClieni].[ID], [tblComenzi].[ID]

Folosind aliasuri de tabel n clauza FROM, facei ca interogarea s devin mai simplu de tastat. Clauza FROM, cu aliasuri
de tabel, poate arta astfel:
FROM [tblClieni] AS [C], [tblComenzi] AS [O]
Apoi este posibil s utilizai aceste aliasuri de tabel n clauza SELECT, dup cum urmeaz:
SELECT [C].[ID], [O].[ID]
NOT Cnd utilizai un alias de tabel, avei posibilitatea s facei referire la sursa de date din instruc iunea SQL utiliznd

aliasul sau numele complet al sursei de date.

Unirea datelor asociate


Cnd avei nevoie de o modalitate de a combina perechi de nregistrri din dou surse de date ntr-o singur nregistrare
dintr-un rezultat de interogare, avei posibilitatea s efectuai o asociere. O asociere este o opera ie SQL care specific
modul n care sunt asociate dou surse de date i dac datele dintr-o singur surs trebuie incluse dac nu exist date
provenite de la alt surs de date.
Pentru a combina informaiile din dou surse de date, efectuai o operaiune de asociere pe cmpul pe care l au n comun.
Cnd valorile stocate n acest cmp corespund, datele din nregistrri sunt combinate n rezultate.
Pe lng combinarea datelor, o asociere se mai utilizeaz pentru a specifica dac s include i nregistrri din tabel dac nu
exist nicio nregistrare provenit din tabelul asociat.
De exemplu, s presupunem c ntr-o interogare dorii s utilizai datele din dou tabele: tblClien i i tblComenzi. Cele dou
tabele au cte un cmp, IDClient, care identific un client. Fiecare nregistrare din tabelul tblClien i poate avea una sau mai
multe nregistrri n tabelul tblComenzi i valorile corespunztoare pot fi determinate de valorile din cmpul IDClient.
Dac dorii s asociai tabelele astfel nct interogarea s combine nregistrrile din tabele, excluznd nregistrrile din orice
tabel dac nu exist nicio nregistrare corespunztoare n cellalt tabel, clauza FROM poate arta astfel (sfr itul de linie
este adugat aici pentru lizibilitate):

FROM [tblClieni] INNER JOIN [tblComenzi]


ON [tblClieni].[IDClient]=[tblComenzi].[IDClient]
n Microsoft Office Access, asocierile apar n clauza FROM a unei instruc iuni SELECT. Exist dou tipuri de asocieri:
asocieri interne i asocieri externe. Seciunea urmtoare explic aceste dou tipuri de asocieri.

Asocieri interne
Asocierile interne sunt cel mai obinuit tip de asocieri. Cnd se execut o interogare cu o asociere intern, singurele
nregistrri incluse n rezultatele interogrii sunt cele n care exist o valoare comun n ambele tabele asociate.
O asociere intern are urmtoarea sintax (sfritul de linie este adugat aici pentru lizibilitate):

FROM tabel1 INNER JOIN tabel2


ON tabel1.cmp1 operator de comparaie tabel2.cmp2

Tabelul urmtor descrie prile unei operaii INNER JOIN.


Parte

Descriere

tabel1,tabel2

Numele tabelelor din care se combin nregistrrile.

cmp1,cmp2

Numele cmpurilor care se unesc. Dac nu sunt numerice, cmpurile trebuie s fie de acela i tip de date
i s conin acelai tip de date, dar nu trebuie neaprat s aib acelai nume.

operator de
comparaie

Orice operator de comparaie relativ: =, <, > <=, >= sau <>.

Asocierile externe
Asocierile externe se aseamn cu asocierile interne, deoarece spun unei interogri cum s combine informa iile din dou
surse. Ele sunt diferite, deoarece specific, de asemenea, dac s se includ date atunci cnd nu exist o valoare comun.
Asocierile externe sunt direcionale: este posibil s specificai dac s include i toate nregistrrile de la prima surs de date
specificat n asociere (denumit asociere la stnga) sau s le includei pe toate cele din a doua surs de date din asociere
(denumit asociere la dreapta).
O asociere extern are sintaxa urmtoare:
FROM tabel1 [ LEFT | RIGHT ] JOIN tabel2
ON tabel1.cmp1operator de comparaie tabel2.cmp2
Tabelul urmtor descrie prile operaiilor LEFT JOIN i RIGHT JOIN.
Parte

Descriere

tabel1,tabel2

Numele tabelelor din care se combin nregistrrile.

cmp1,cmp2

Numele cmpurilor care se unesc. Cmpurile trebuie s fie de acelai tip de date i s conin acelea i
tipuri de date, dar nu trebuie neaprat s aib acelai nume.

operator de
comparaie

Orice operator de comparaie relativ: "=," "<," ">," "<=," ">=," sau "<>."

Pentru mai multe informaii despre asocieri, consultai articolul Asocierea tabelelor i a interogrilor.
nceputul paginii

Mai multe despre clauza WHERE


Cnd dorii s utilizai date pentru a limita numrul de nregistrri returnate ntr-o interogare, utiliza i criterii de interogare
n clauza WHERE a unei instruciuni SELECT. Un criteriu de interogare se aseamn cu o formul - este un ir ce poate
cuprinde referine de cmp, operator i constant. Criteriile de interogare sunt un tip de expresie.

Urmtorul tabel afieaz cteva exemple de criterii i explic modul n care func ioneaz.
Criterii

Descriere

>25 and <50

Criteriul se aplic unui cmp de tip Numr, cum ar fi Pre sau UnitinStoc. Se vor include
numai acele nregistrri unde cmpurile conin o valoare mai mare dect 25 i mai mic dect
50.

DateDiff ("yyyy",
[DataNaterii], Date()) >
30

Acest criteriu se aplic unui cmp Dat/Or, cum ar fi DataNaterii. Se includ n rezultatele
interogrii numai nregistrrile unde numrul de ani dintre data de na tere a persoanei i data
de azi este mai mare de 30.

Is Null

Acest criteriu poate fi aplicat oricrui tip de cmp pentru a afia nregistrrile unde valoarea
cmpului este nul.

Aa cum arat i tabelul anterior, criteriile pot fi diferite, n funcie de tipul de date al cmpului pentru care se aplic i de
cerinele dvs. Anumite criterii sunt simple i utilizeaz operatori i constante de baz. Altele sunt complexe i utilizeaz
funcii i operatori speciali i includ referine la cmpuri.
IMPORTANT Dac un cmp este utilizat cu o funcie agregat, nu este posibil s specifica i criterii pentru acel cmp ntr-o

clauz WHERE. n schimb, utilizai o clauz HAVING pentru a specifica criteriile pentru cmpurile agregate. Pentru mai
multe informaii, vedei seciunea Lucrul cu date rezumate: GROUP BY i HAVING.

Sintaxa clauzei WHERE


O clauz WHERE are urmtoarea sintax de baz:
WHERE cmp = criteriu
De exemplu, s presupunem c dorii numrul de telefon al unui client, dar a i re inut doar c numele de familie al clientului
este Calinov. n loc s v uitai prin toate numerele de telefon din baza de date, ave i posibilitatea s utiliza i o clauz
WHERE pentru a limita rezultatele i a facilita gsirea numrului de telefon dorit. Presupunnd c numele de familie sunt
depozitate ntr-un cmp denumit NumeDeFamilie, clauza dvs. WHERE va aprea astfel:
WHERE [NumeDeFamilie]='Calinov'
NOT Nu este necesar s v bazai criteriile din clauza WHERE pe echivalena valorilor. Ave i posibilitatea s utiliza i al i

operatori de comparaie, cum ar fi mai mare dect (>) sau mai mic dect (<). De exemplu, WHERE [Pre]>100.

Utilizai clauza WHERE pentru a combina surse de


date
Uneori, poate c dorii s combinai surse de date n baza unor cmpuri care au date potrivite, dar care au tipuri diferite de
date. De exemplu, un cmp dintr-un tabel poate avea un tip de date Numr i dorii s compara i acest cmp cu un cmp din
alt tabel care are un tip de date Text.

Nu este posibil s creai o asociere ntre cmpurile cu tipuri de date diferite. Pentru a combina date din dou surse de date pe
baza valorilor din cmpurile care au tipuri de date diferite, creai o clauz WHERE care utilizeaz un cmp drept criteriu
pentru cellalt cmp, utiliznd cuvntul cheie LIKE.
De exemplu, s presupunem c dorii s utilizai datele din tabel1 i tabel2, dar doar atunci cnd datele din cmp1 (un cmp
text din tabel1) se potrivesc cu datele din cmp2 (un cmp numeric din tabel2). Clauza WHERE ar arta astfel:
WHERE cmp1 LIKE cmp2

Exemple de criterii de interogare


Cnd dorii s limitai rezultatele unei interogri n baza valorilor dintr-un cmp, utiliza i criterii de interogare. Un criteriu
de interogare este o expresie pe care Access o compar cu valorile cmpului de interogare pentru a determina dac include
nregistrarea care conine fiecare valoare. De exemplu, = "Chicago" este o expresie pe care Access o poate compara cu
valorile dintr-un cmp text sau dintr-o interogare. Dac valoarea pentru acel cmp dintr-o nregistrare dat este "Chicago",
Access include nregistrarea n rezultatele interogrii.
Acest subiect ofer mai multe exemple de criterii de interogare. Se presupune c sunte i obi nuit cu proiectarea interogrilor
simple de selectare.
Pentru a afla mai multe despre interogri, consultai articolul Introducere n interogri.

n acest articol
Prezentare general
Utilizarea Generatorului de expresii pentru a introduce criterii

Toate criteriile pe care le specificai n rndul Criterii sunt combinate


Specificarea criteriilor alternative prin utilizarea rndului Sau
Criterii pentru cmpurile Text, Memo i Hyperlink
Criteriile de hyperlink sunt oarecum atipice
Criterii pentru cmpurile Numr, Moned i Numerotare automat
Criterii pentru cmpurile Dat/Or
Criterii pentru alte cmpuri

Prezentare general
Un criteriu este asemntor cu o formul, fiind un ir care poate fi format din referin e de cmp, operator i constant.
Criteriile de interogare se mai numesc i expresii.
Videoclipul urmtor arat cum se utilizeaz criteriile pentru un cmp text.
Urmtorul tabel afieaz cteva exemple de criterii i explic modul n care func ioneaz.
Criteriu

Descriere

>25 and <50

Criteriul se aplic unui cmp de tip Numr, cum ar fi Pre sau UnitinStoc. Se vor include
numai acele nregistrri unde cmpurile Pre sau UnitinStoc conin o valoare mai mare
dect 25 i mai mic dect 50.

DateDiff ("yyyy",
[DataNaterii], Date()) >
30

Acest criteriu se aplic unui cmp Dat/Or, cum ar fi DataNaterii. Se includ n rezultatele
interogrii numai nregistrrile unde numrul de ani dintre data de natere a persoanei i
data de azi este mai mare de 30.

Is Null

Acest criteriu se poate aplica oricrui tip de cmp pentru a afia nregistrrile unde valoarea
cmpului este nul.

Criteriile pot arta destul de diferit ntre ele. Unele criterii sunt simple i utilizeaz operatori de baz (cum ar fi <) i
constante (cum ar fi 50). Altele sunt complexe i utilizeaz funcii (cum ar fi DateDiff) sau referin e la cmp (cum ar fi
[DataNaterii]). Acest subiect furnizeaz mai multe exemple de criterii utilizate de obicei, grupate dup tipul de date la
care se aplic. Este posibil s utilizai exemplele date n acest subiect ca punct de pornire pentru a v scrie propriile criterii.
Pentru a aduga criterii la o interogare, trebuie s deschidei interogarea n vizualizarea Proiectare. Apoi, identifica i
cmpurile pentru care dorii s specificai criterii. n cazul n care un cmp pentru care dori i s specifica i un criteriu nu se
afl deja n grila de proiectare, l adugai glisndu-l din fereastra de proiectare a interogrii n grila de proiect sau fcnd
dublu clic pe cmp. n cazul n care cmpul pe care l dorii este n grila de proiect, introduce i criteriile n
rndul Criterii pentru acel cmp.

Utilizarea Generatorului de expresii pentru a introduce


criterii
Avei posibilitatea s utilizai Generatorul de expresii pentru a utiliza criterii care con in func ii. Generatorul de expresii
furnizeaz caracteristici care v ajut s utilizai corect fiecare funcie. Pentru mai multe informa ii despre Generatorul de
expresii, consultai articolul Utilizarea Generatorului de expresii.

Toate criteriile pe care le specificai n rndul Criterii


sunt combinate
Criteriile pe care le specificai pentru cmpurile diferite din rndul Criterii sunt combinate utiliznd operatorul AND. De
exemplu, avei posibilitatea s specificai criteriul ="Chicago" pentru cmpul Localitate i criteriul < DateAdd("yyyy",
-40, Data()) pentru cmpul DataNaterii. Cele dou sunt interpretate mpreun astfel:
Localitate = "Chicago" AND DataNaterii < DateAdd("yyyy", -40, Date())

1. Cmpurile Localitate i DataNaterii includ criterii.


2. Numai nregistrrile unde valoarea cmpului Localitate este Chicago va satisface acest criteriu.
3. Numai nregistrrile persoanelor mai tinere de 40 de ani vor satisface acest criteriu.
4. Numai nregistrrile care ndeplinesc ambele criterii vor fi incluse n list.

Specificarea criteriilor alternative prin utilizarea


rndului Sau
Dac avei criterii alternative sau dou seturi independente de criterii unde este suficient s fie satisfcut unul din ele, vede i
att rndul Criterii, ct i rndul sau n grila de proiectare.

1. Criteriul Localitate este specificat n rndul Criterii.


2. Criteriul DataNaterii este specificat n rndul sau.
Criteriile specificate n rndurile Criterii i sau se combin utiliznd operatorul OR, astfel:
Localitate = "Chicago" OR DataNaterii < DateAdd("yyyy", -40, Date())
Dac avei nevoie s specificai mai multe alternative, utilizai rndurile de sub rndul sau.
nainte de a continua cu exemplele, reinei urmtoarele:

n cazul n care criteriile sunt temporare sau se modific des, ave i posibilitatea s filtra i rezultatul interogrii n loc
de a modifica frecvent criteriile de interogare. Un filtru modific rezultatul interogrii fr a modifica proiectul interogrii.
Pentru mai multe informaii despre filtre, consultai seciunea Consultai i.

n cazul n care cmpurile de criterii nu se modific, dar valorile pe care dorii s le utiliza i se modific frecvent,
avei posibilitatea s creai o interogare cu parametri. O interogare cu parametri v solicit o intrare atunci cnd rula i
interogarea, apoi utilizeaz respectiva intrare pentru a crea criteriile de interogare. Pentru mai multe informa ii despre cum se
creeaz o interogare care cere o intrare, consultai seciunea Consultai i.
nceputul paginii

Criterii pentru cmpurile Text, Memo i


Hyperlink
Urmtoarele exemple sunt pentru cmpul arRegiune dintr-o interogare care se bazeaz pe un tabel care stocheaz
informaii despre persoane de contact. Criteriul este specificat n rndul Criterii al cmpului din grila de proiectare.

Pentru a include
nregistrri care...

Utilizai acest criteriu

Rezultat interogare

Se potrivesc exact cu
o valoare, cum ar fi
China

"China"

Returneaz nregistrrile unde cmpul arRegiune este China.

Nu se potrivesc cu o
valoare, cum ar fi
Mexic

Not "Mexico"

Returneaz nregistrrile unde cmpul arRegiune este setat la alt


ar/regiune dect Mexic.

ncep cu irul
specificat, cum ar fi
S

Like S*

Returneaz nregistrrile pentru toate rile/regiunile ale cror nume


ncepe cu S, cum ar fi Suedia, SUA etc.
NOT Cnd se utilizeaz ntr-o expresie, asteriscul (*) reprezint orice

ir de caractere - este denumit i metacaracter. Pentru o list de astfel de


caractere, consultai articolul Referine despre metacaracterele Access.
Nu ncep cu irul
specificat, cum ar fi
S

Not Like S*

Returneaz nregistrrile pentru toate rile/regiunile ale cror nume ncep


cu alt caracter dect S.

Conine irul
specificat, cum ar fi
Coreea

Like "*Coreea*"

Returneaz nregistrrile pentru toate rile/regiunile care conin irul


"Coreea".

Nu conine irul
specificat, cum ar fi
Coreea

Not Like "*Coreea*"

Returneaz toate nregistrrile pentru rile/regiunile care nu conin irul


Coreea.

Pentru a include
nregistrri care...

Utilizai acest criteriu

Rezultat interogare

Se termin cu irul
specificat, cum ar fi
ina

Like "*ina"

Returneaz nregistrrile pentru toate rile/regiunile ale cror nume se


termin n ina, cum ar fi China i Argentina.

Nu se termin cu
irul specificat, cum
ar fi ina

Not Like "*ina"

Returneaz nregistrrile pentru toate rile/regiunile care nu se termin n


"ina", cum ar fi China i Argentina.

Conine valori nule


(sau care lipsesc)

Is Null

Returneaz nregistrrile unde nu exist nicio valoare n cmp.

Nu conine valori
nule

Is Not Null

Returneaz nregistrrile unde nu lipsesc valori din cmp.

Conine iruri de
lungime zero

"" (o pereche de
ghilimele)

Returneaz nregistrrile unde cmpul este setat la o valoare


necompletat (dar nenul). De exemplu, nregistrrile de vnzri
efectuate n alt departament pot conine o valoare necompletat n cmpul
arRegiune.

Nu conine iruri de
lungime zero

Not ""

Returneaz nregistrrile unde cmpul arRegiune are o valoare


completat.

Conine valori nule


sau iruri de lungime
zero

"" Or Is Null

Returneaz nregistrrile unde nu exist o valoare n cmp sau valoarea


este setat s fie o valoare necompletat.

Nu este gol sau


necompletat

Is Not Null And Not ""

Returneaz nregistrrile unde cmpul arRegiune conine o valoare


completat, nenul.

Urmeaz unei valori,


cum ar fi Mexic,
cnd se sorteaz n
ordine alfabetic

>= "Mexico"

Returneaz nregistrrile pentru toate rile/regiunile, ncepnd cu Mexic


i continund pn la finalul alfabetului.

Se ncadreaz ntr-un
anumit interval, cum
ar fi de la A la D

Like "[A-D]*"

Returneaz nregistrrile pentru rile/regiunile ale cror nume ncep cu


literele A pn la D.

Se potrivesc cu una
din dou valori, cum
ar fi SUA sau
Canada

"SUA" Or "Canada"

Returneaz nregistrrile pentru SUA i Canada.

Pentru a include
nregistrri care...

Utilizai acest criteriu

Rezultat interogare

Conin una din


valorile dintr-o list
de valori

In("Frana", "China",
"Germania", "Japonia")

Returneaz nregistrrile pentru toate rile/regiunile specificate n list.

Conin anumite
caractere ntr-o
anumit poziie n
valorile cmpului

Right([arRegiune], 1)
= "a"

Returneaz nregistrrile pentru toate rile/regiunile unde ultima liter


este a

Satisfac cerine de
lungime

Len([arRegiune]) >
10

Returneaz nregistrrile pentru ri/regiuni ale cror nume au mai mult


de 10 caractere.

Se potrivesc unui
anumit model

Like "Chi??"

Returneaz nregistrrile pentru ri/regiuni, cum ar fi China sau Chile,


ale cror nume au cinci caractere lungime i primele trei caractere "Chi".
NOT Caracterele ? i _, atunci cnd sunt utilizate ntr-o expresie,

reprezint un singur caracter; acestea mai sunt numite metacaractere.


Caracterul _ nu se poate utiliza n aceeai expresie cu ? i nici nu se poate
utiliza ntr-o expresie cu metacaracterul *. Avei posibilitatea s utilizai
metacaracterul _ ntr-o expresie care conine i metacaracterul%.

Criteriile de hyperlink sunt oarecum atipice


n mod implicit, un criteriu specificat pentru un cmp Hyperlink este aplicat por iunii de text afi at a valorii cmpului, nu
pentru destinaia linkului. Pentru a specifica criterii pentru poriunea URL a valorii, utiliza i expresia HyperlinkPart.
Sintaxa pe care o utilizai arat astfel:

HyperlinkPart([Tabel1].[Cmp1],1) =
"http://www.microsoft.com/"
Tabel1 reprezint numele tabelului care conine cmpul hyperlink, Cmp1 este cmpul hyperlink i
http://www.microsoft.com este adresa URL pe care dorii s o potrivii.
nceputul paginii

Criterii pentru cmpurile Numr,


Moned i Numerotare automat
Urmtoarele exemple sunt date pentru cmpul PreUnitar ntr-o interogare care se bazeaz pe un tabel care stocheaz
informaii de produse. Criteriul este specificat n rndul Criterii n cmpul din grila de proiectare a interogrii.

Pentru a include
nregistrri care...

Utilizai
acest
criteriu

Rezultat interogare

Se potrivesc exact
cu o valoare, cum
ar fi 100

100

Returneaz nregistrrile unde preul unitar al produsului este de 100 lei.

Nu se potrivesc cu
o valoare, cum ar fi
1000

Not 1000

Returneaz nregistrrile unde preul unitar al produsului nu este de 1000 lei.

Conin o valoare
mai mic dect
acea valoare, cum
ar fi 100

< 100
<= 100

Returneaz nregistrrile unde preul unitar este mai mic de 100 lei (<100). A doua
expresie (<=100) afieaz nregistrrile unde preul unitar este mai mic sau egal dect
100 lei.

Conin o valoare
mai mare dect o
valoare cum ar fi
99,99

>99,99
>=99,99

Returneaz nregistrrile unde preul unitar este mai mare dect 99,99 lei (>99,99). A
doua expresie afieaz nregistrrile unde preul unitar este mai mare sau egal cu 99,99
lei.

Conin una din


dou valori, cum ar
fi 20 sau 25

20 or 25

Returneaz nregistrrile unde unde preul unitar este 20 lei sau 25 lei.

Pentru a include
nregistrri care...

Utilizai
acest
criteriu

Rezultat interogare

Conin o valoare
care se ncadreaz
ntr-un interval de
valori

>49,99 i
<99,99
-sauBetween
50 and 100

Returneaz nregistrrile unde preul unitar este ntre (dar nu inclusiv) 49,99 i 99,99 lei.

Conin o valoare
care este n afara
unui interval

<50 or
>100

Returneaz nregistrrile unde preul unitar nu se afl ntre 50 i 100 lei.

Conin una sau mai


multe valori
specifice

In(20, 25,
30)

Returneaz nregistrrile unde preul unitar este 20, 25 sau 30 lei.

Conin o valoare
care se termin cu
cifrele specificate

Like
"*4,99"

Returneaz nregistrrile unde preul unitar se termin n 4,99, cum ar fi 4,99 lei, 14,99
lei, 24,99 lei etc.
NOT Caracterele * i %, atunci cnd sunt utilizate ntr-o expresie, reprezint orice

numr de caractere; acestea mai sunt numite metacaractere. Caracterul % nu se poate


utiliza n aceeai expresie cu * i nici nu se poate utiliza ntr-o expresie cu
metacaracterul ?. Avei posibilitatea s utilizai metacaracterul % ntr-o expresie care
conine i metacaracterul _.
Conine valori nule
(sau care lipsesc)

Is Null

Returneaz nregistrrile unde nu este introdus nicio valoare n cmpul Pre Unitar.

Conin valori
nenule

Is Not
Null

Returneaz nregistrrile unde valoarea nu lipsete din cmpul PreUnitar.

nceputul paginii

Criterii pentru cmpurile Dat/Or


Urmtoarele exemple sunt date pentru cmpul DatComand ntr-o interogare care se bazeaz pe un tabel care stocheaz
informaii despre comenzi. Criteriul este specificat n rndul Criterii n cmpul din grila de proiectare a interogrii.

Pentru a include
nregistrri care...

Utilizai acest criteriu

Rezultat interogare

Se potrivesc exact
cu o valoare, cum
ar fi 02.02.2006

#02.02.2006#

Returneaz nregistrrile tranzaciilor


care au avut loc pe data de 2 februarie
2006. Reinei c trebuie s ncadrai
aceste date cu caracterul #, astfel nct
Access s disting ntre valorile dat i
irurile text.

Nu se potrivesc cu
o valoare, cum ar fi
02.02.2006

Not #02.02.2006#

Returneaz nregistrrile tranzaciilor


care au avut loc ntr-o zi diferit de 2
februarie 2006.

Conine valori care


sunt nainte de o
anumit dat, cum
ar fi 02.02.2006

< #02.02.2006#

Returneaz nregistrrile tranzaciilor


care au avut nainte de data de 2 februarie
2006.
Pentru a vizualiza tranzaciile care au
avut loc la aceast dat sau nainte,
utilizai operatorul <=n loc de
operatorul < .

Conin valori care


se ncadreaz dup

> #02.02.2006#

Returneaz nregistrrile tranzaciilor

Pentru a include
nregistrri care...

Utilizai acest criteriu

o anumit dat,
cum ar fi
02.02.2006

Conin valori care


se ncadreaz ntrun interval de date

Rezultat interogare

care au avut loc dup 2 februarie 2006.


Pentru a vizualiza tranzaciile care au
avut loc la aceast dat sau dup ea,
utilizai operatorul>= n loc de
operatorul > .
>#02.02.2006# and <#04.02.2006#

Returneaz nregistrrile unde tranzaciile


au loc ntre 2 februarie 2006 i 4
februarie 2006.
De asemenea, avei posibilitatea s
utilizai operatorul Between pentru a
filtra dup un interval de valori, inclusiv
punctele de sfrit. De exemplu, Between
#2/2/2006# and #2/4/2006# este identic
cu >=#2/2/2006# i <=#2/4/2006# .

Conin valori care


nu se ncadreaz
ntr-un interval

<#02.02.2006# or >#04.02.2006#

Returneaz nregistrrile unde tranzaciile


au avut loc nainte de 2 februarie 2006
sau dup 4 februarie 2006.

Conin una din


dou valori, cum ar
fi 02.02.2006 sau
03.02.2006

#02.02.2006# or #03.02.2006#

Returneaz nregistrrile tranzaciilor


care au avut loc pe data de 2 februarie
2006 sau 3 februarie 2006.

Conin una din mai


multe valori

In (#01.02.2006#, #01.03.2006#, #01.04.2006#)

Returneaz nregistrrile unde tranzaciile


au avut loc la data de 1 februarie 2006, 1
martie 2006 sau 1 aprilie 2006.

Conin date care se


ncadreaz ntr-o
anumit lun
(indiferent de an),
cum ar fi
decembrie

DatePart("m", [DateVnzri]) = 12

Returneaz nregistrrile unde tranzaciile


au avut loc n luna decembrie a oricrui
an.

Conin date care se


ncadreaz ntr-un
anumit trimestru
(indiferent de an),
cum ar fi trimestrul

DatePart("q", [DateVnzri]) = 1

Returneaz nregistrri unde tranzaciile


au avut loc n primul trimestru al oricrui
an.

Pentru a include
nregistrri care...

Utilizai acest criteriu

Rezultat interogare

Conin data de
astzi

Date()

Returneaz nregistrrile tranzaciilor


care au avut loc astzi. Dac data de
astzi este 02.02.2006, vei vedea
nregistrrile unde cmpul DatComand
este setat la 2 februarie 2006.

Conin data de ieri

Date()-1

Returneaz nregistrrile tranzaciilor


care au avut loc o zi nainte de ziua
curent. Dac data de astzi este
02.02.2006, vei vedea nregistrrile
pentru 1 februarie 2006.

Conin data de
mine

Date() + 1

Returneaz nregistrrile tranzaciilor


care au avut loc o zi dup de ziua curent.
Dac data de astzi este 02.02.2006, vei
vedea nregistrrile pentru 3 februarie
2006.

Conin datele care


se ncadreaz n
sptmna curent

DatePart("ww", [DatVnzri]) = DatePart("ww", Date())


and Year( [DatVnzri]) = Year(Date())

Returneaz nregistrrile tranzaciilor


care au avut loc n timpul sptmnii
curente. O sptmn ncepe duminic i
se termin smbt.

Conin datele care


se ncadreaz n
sptmna
anterioar

Year([DatVnzri])* 53 + DatePart("ww",
[DatVnzri]) = Year(Date())* 53 + DatePart("ww",
Date()) - 1

Returneaz nregistrrile tranzaciilor


care au avut loc n timpul sptmnii
trecute. O sptmn ncepe duminic i
se termin smbt.

Conin datele care


se ncadreaz n
timpul sptmnii
urmtoare

Year([DatVnzri])* 53+DatePart("ww", [DatVnzri])


= Year(Date())* 53+DatePart("ww", Date()) + 1

Returneaz nregistrrile tranzaciilor


care vor avea loc sptmna viitoare. O
sptmn ncepe duminic i se termin
smbt.

Conin o dat care


cade n ultimele
apte zile

Between Date() and Date()-6

Returneaz nregistrri pentru tranzacii


care au avut loc n ultimele apte zile.
Dac data de astzi este 02.02.2006, vei
vedea nregistrrile pentru perioada 24
ianuarie 2006 pn la 2 februarie 2006.

Conin o dat care


aparine lunii

Year([DatVnzri]) = Year(Now()) And

Returneaz nregistrrile pentru luna


curent. Dac data de astzi este

nti

Pentru a include
nregistrri care...

Utilizai acest criteriu

Rezultat interogare

curente

Month([DatVnzri]) = Month(Now())

02.02.2006, vei vedea nregistrrile


pentru luna februarie 2006.

Conine o dat care


aparine lunii
anterioare

Year([DatVnzri])* 12 + DatePart("m", [DatVnzri])


= Year(Date())* 12 + DatePart("m", Date()) - 1

Returneaz nregistrrile pentru luna


precedent. Dac data de astzi este
02.02.2006, vedei nregistrrile pentru
ianuarie 2006.

Conin o dat care


aparine lunii
urmtoare

Year([DatVnzri])* 12 + DatePart("m", [DatVnzri])


= Year(Date())* 12 + DatePart("m", Date()) + 1

Returneaz nregistrrile pentru luna


viitoare. Dac data de astzi este
02.02.2006, vedei nregistrrile pentru
martie 2006.

Conin o dat care


a czut n ultimele
30 sau 31 de zile

Between Date() And DateAdd("M", -1, Date())

nregistrrile de vnzri pentru o lun.


Dac data de astzi este 02.02.2006,
vedei nregistrrile pentru perioada 2
ianuarie 2006. pn la 2 februarie 2006

Conin o dat care


aparine
trimestrului curent

Year([DatVnzri]) = Year(Now()) And DatePart("q",


Date()) = DatePart("q", Now())

Returneaz nregistrrile pentru trimestrul


curent. Dac data de astzi este
02.02.2006, vedei nregistrrile pentru
primul trimestru din 2006.

Conin o dat care


aparine
trimestrului
anterior

Year([DatVnzri])*4+DatePart("q",[DatVnzri]) =
Year(Date())*4+DatePart("q",Date())- 1

Returneaz nregistrrile pentru trimestrul


trecut. Dac data de astzi este
02.02.2006, vedei nregistrrile pentru
ultimul trimestru din 2005.

Conin o dat care


aparine
trimestrului
urmtor

Year([DatVnzri])*4+DatePart("q",[DatVnzri]) =
Year(Date())*4+DatePart("q",Date())+1

Returneaz nregistrrile pentru trimestrul


urmtor. Dac data de astzi este
02.02.2006, vedei nregistrrile pentru al
doilea trimestru din 2006.

Conin o dat care


cade n anul curent

Year([DatVnzri]) = Year(Date())

Returneaz nregistrrile pentru anul


curent. Dac data de astzi este
02.02.2006, vedei nregistrrile pentru
anul 2006.

Conin o dat care


aparine anului
anterior

Year([DatVnzri]) = Year(Date()) - 1

Returneaz nregistrrile tranzaciilor


care au avut loc anul trecut. Dac data de
astzi este 02.02.2006, vedei
nregistrrile pentru anul 2005.

Pentru a include
nregistrri care...

Utilizai acest criteriu

Rezultat interogare

Conine o dat care


aparine anului
urmtor

Year([DatVnzri]) = Year(Date()) + 1

Returneaz nregistrrile tranzaciilor


care vor avea loc anul urmtor. Dac data
de astzi este 02.02.2006, vedei
nregistrrile pentru anul 2007.

Conin o dat care


cade ntre 1
ianuarie i astzi
(nregistrrile la zi
pentru anul curent)

Year([DatVnzri]) = Year(Date()) and


Month([DatVnzri]) <= Month(Date()) and
Day([DatVnzri]) <= Day (Date())

Returneaz nregistrrile tranzaciilor cu


date ntre 1 ianuarie anul curent i astzi.
Dac data de astzi este 02.02.2006,
vedei nregistrrile pentru perioada 1
ianuarie 2006 pn la 02.02.2006.

Conin o dat din


trecut

< Date()

Returneaz nregistrrile tranzaciilor


care au avut loc nainte de ziua curent.

Conin o dat din


viitor

> Date()

Returneaz nregistrrile tranzaciilor


care vor avea loc dup ziua curent.

Filtreaz pentru
valori nule (sau
care lipsesc)

Is Null

Returneaz nregistrrile unde data


tranzaciei lipsete.

Filtreaz pentru
valori nenule

Is Not Null

Returneaz nregistrrile unde data


tranzaciei este cunoscut.

Videoclipul urmtor are mai multe informaii despre utilizarea expresiilor legate de dat:
nceputul paginii

Criterii pentru alte cmpuri


Tip de cmp

Instruciuni de aplicare a criteriilor

Da/Nu

n rndul Criterii, tastai Da pentru a include nregistrrile unde este bifat caseta de selectare. Tasta i Nu
pentru a include nregistrrile unde caseta de selectare nu este bifat.

Ataare

n rndul Criterii, tastai Is Null pentru a include nregistrrile care nu conin ata ri. Tasta i Is Not Null
pentru a include nregistrrile care conin atari.

Cutare

Exist dou tipuri de baz de cmpuri de cutare: cmpurile de cutare care caut valori ntr-o surs de date
existent (utiliznd o cheie extern) i cele care se bazeaz pe o list de valori specificat atunci cnd se
creeaz cmpul de cutare.

Tip de cmp

Instruciuni de aplicare a criteriilor


Cmpurile de cutare care se bazeaz pe o list de valori specificate au tipul de date Text, iar criteriile valide
sunt aceleai ca i pentru cmpurile text.
Criteriile care se pot utiliza ntr-un cmp de cutare bazat pe valori din surse de date existente depind de tipul
de date al cheii externe mai degrab dect de tipul de date al datelor cutate. De exemplu, este posibil s ave i
un cmp de cutare care afieaz Nume angajat, dar utilizeaz o cheie extern care este de tipul de date
Numr. Deoarece cmpul stocheaz un numr n loc de text, utilizai criteriile care func ioneaz pentru
numere; adic, >2.
Dac nu cunoatei tipul de date al cheii externe, avei posibilitatea s cercetai tabelul surs n vizualizarea
Proiect pentru a determina tipurile de date din cmp. Pentru aceasta:
Gsii tabelul surs n Panou navigare.
Deschidei tabelul n vizualizarea Proiect printr-una din urmtoarele dou metode:
Facei clic pe tabel, apoi apsai CTRL+ENTER
Facei clic cu butonul din dreapta pe tabel, apoi facei clic pe Vizualizare Proiect.
Tipul de date pentru fiecare cmp este listat n coloana Tip de date din grila de proiectare a tabelului.

Multivalori
c

Datele dintr-un cmp multivaloric se stocheaz ca rnduri ntr-un tabel ascuns, pe care Office Access 2007 l
creeaz i l populeaz pentru a reprezenta cmpul. n vizualizarea Proiectare, acesta se reprezint n List de
cmpuri utiliznd un cmp extensibil. Pentru a utiliza criteriile pentru un cmp multivaloric, oferi i criteriile
pentru un singur rnd al tabelului ascuns. Pentru a face aceasta:
Creai o interogare care conine cmpul multi-valoare, apoi deschidei-o n vizualizarea Proiect.
Extindei cmpul multivaloric fcnd clic pe simbolul plus (+) de lng el - n cazul n care cmpul
este deja extins, apare simbolul minus(-). Chiar sub numele cmpului, vei vedea un cmp care reprezint o
singur valoare a cmpului multivaloric. Acest cmp va avea acelai nume cu cmpul multivaloric, cu irul
.Value adugat.
Glisai cmpul multi-valoare i cmpul su cu o singur valoare pentru a separa coloanele n grila de
proiectare. Dac dorii s vedei numai cmpul multi-valoare complet n rezultatele dvs., debifa i caseta de
selectare Afiare pentru cmpul cu o singur valoare.
Tastai criteriile n rndul Criterii pentru cmpul cu o singur valoare, utiliznd criteriile care se
potrivesc tipului de date pe care le reprezint valorile.
Fiecare valoare din cmpul multivaloric va fi evaluat individual utiliznd criteriile pe care le oferi i. De
exemplu, s presupunem c avei un cmp multivaloric ce stocheaz o list de numere. Dac furniza i
criteriile >5 AND <3, orice nregistrare unde exist cel puin o valoare mai mare dect 5 io valoare mai mic
dect 3 se va potrivi.

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