Introducere în SQL pentru Access

Important : Acest articol este tradus automat, consultați exonerarea de răspundere. Versiunea în limba engleză a acestui articol se poate găsi aici pentru referință.

Atunci când doriți să regăsiți date dintr-o bază de date, solicitați datele respective utilizând limbajul SQL (Structured Query Language - limbaj de interogare structurat). SQL este un limbaj informatic care se aseamănă foarte mult cu limba engleză, care este înțeles de programele pentru baze de date. Este importantă cunoașterea limbajului SQL, deoarece toate interogările din Microsoft Access îl utilizează. Înțelegerea modului în care funcționează SQL vă ajută să creați interogări mai bune și simplifică remedierea unei interogări care nu returnează rezultatele dorite.

Notă : Nu aveți posibilitatea să editați codul SQL pentru o interogare Web.

În acest articol

Ce este SQL?

Clauze SQL de bază: SELECT, FROM și WHERE

Sortarea rezultatelor: ORDER BY

Lucrul cu date rezumate: GROUP BY și HAVING

Combinarea rezultatelor interogării: UNION

Mai multe despre clauza SELECT

Mai multe despre clauza FROM

Mai multe despre clauza WHERE

Ce este SQL?

SQL este un limbaj informatic pentru lucrul cu seturi de evenimente și relațiile dintre acestea. Programele de baze de date relaționale, cum ar fi Access, utilizează SQL pentru a lucra cu datele. La fel ca multe limbaje informatice, SQL este un standard internațional recunoscut de autorități de standardizare, cum ar fi ISO și ANSI.

Utilizați SQL pentru a descrie seturi de date care vă pot ajuta să răspundeți la întrebări. Când utilizați SQL, trebuie să utilizați sintaxa corectă. Sintaxa este setul de reguli prin care sunt combinate corect elementele unui limbaj. Sintaxa SQL se bazează pe sintaxa limbii engleze și utilizează multe dintre elementele sintaxei Visual Basic for Applications (VBA).

De exemplu, o instrucțiune SQL simplă care regăsește o listă cu numele de familie al persoanelor cu prenumele Maria poate arăta astfel:

SELECT Last_Name
FROM Contacts
WHERE First_Name = 'Mary';

Notă : SQL nu se utilizează doar pentru gestionarea datelor, dar și pentru crearea și modificarea proiectului obiectelor bazei de date, cum ar fi tabele. Partea din SQL care este utilizată pentru crearea și modificarea obiectelor bazei de date se numește limbaj de definire a datelor (DDL). Acest subiect nu tratează limbajul DDL. Pentru mai multe informații, consultați articolul Crearea sau modificarea tabelelor sau a indexurilor utilizând o interogare de definiție de date.

Instrucțiunile SELECT

Pentru a descrie un set de date utilizând SQL, scrieți o instrucțiune SELECT. O instrucțiune SELECT conține o descriere completă a unui set de date pe care doriți să le obțineți de la o bază de date. Acestea cuprind următoarele:

  • Ce tabele conțin datele.

  • Cum se asociază datele din surse diferite.

  • Ce câmpuri sau calcule vor produce datele.

  • Criteriile care trebuie să fie îndeplinite pentru ca datele să fie incluse.

  • Dacă să se sorteze rezultatele și cum să se sorteze acestea.

Clauze SQL

La fel ca o propoziție, o instrucțiune SQL are clauze. Fiecare clauză efectuează o funcție pentru instrucțiunea SQL. Unele clauze sunt obligatorii într-o instrucțiune SELECT. Tabelul următor listează cele mai comune clauze SQL.

Clauză SQL

Ce face

Obligatorie

SELECT

Listează câmpurile care conțin date de interes.

Da

FROM

Listează tabelele care conțin câmpurile listate în clauza SELECT.

Da

WHERE

Specifică criteriile de câmp ce trebuie îndeplinite de fiecare înregistrare pentru ca aceasta să fie inclusă în rezultate.

Nu

ORDER BY

Specifică modalitatea de sortare a rezultatelor.

Nu

GROUP BY

Într-o instrucțiune SQL care conține funcții agregate, listează câmpurile care nu sunt rezumate în clauza SELECT.

Doar dacă există astfel de câmpuri

HAVING

Într-o instrucțiune SQL care conține funcții agregate, specifică ce condiții se aplică la câmpurile care sunt rezumate în instrucțiunea SELECT.

Nu

Termeni SQL

Fiecare clauză SQL este formată din termeni - comparabile cu părțile de vorbire. Tabelul următor listează tipurile de termeni SQL.

Termen SQL

Parte de vorbire comparabilă

Definiție

Exemplu

identificator

substantiv

Un nume pe care îl utilizați pentru a identifica un obiect din baza de date, cum ar fi un nume de câmp.

Clienți.[Număr de telefon]

operator

verb sau adverb

Un cuvânt cheie care reprezintă o acțiune sau care modifică o acțiune.

AS

constantă

substantiv

O valoare care nu se modifică, precum un număr sau o valoare NULL.

42

expresie

adjectiv

O combinație de identificatori, operatori, constante și funcții care se evaluează la o singură valoare.

>= Produse.[Preț unitar]

Începutul paginii

Clauze SQL de bază: SELECT, FROM și WHERE

O instrucțiune SQL are forma generală:

SELECT field_1
FROM table_1
WHERE criterion_1
;

Note : 

  • Access ignoră sfârșiturile de linie într-o instrucțiune SQL. Totuși, luați în calcul utilizarea unei linii separate pentru fiecare clauză, pentru a contribui la îmbunătățirea lizibilității instrucțiunilor SQL pentru dvs. și pentru alte persoane.

  • Fiecare instrucțiune SELECT se termină prin punct și virgulă (;). Semnul punct și virgulă poate apărea la sfârșitul ultimei clauze sau separat pe o linie la sfârșitul instrucțiunii SQL.

Un exemplu din Access

În continuare se ilustrează cum poate arăta în Access o instrucțiune SQL pentru o interogare de selectare simplă:

Fila obiect SQL afișând o instrucțiune SELECT

1. Clauza SELECT

2. Clauza FROM

3. Clauza WHERE

Acest exemplu de instrucțiune SQL semnifică „Selectați datele stocate în câmpuri denumite Adresă de poștă electronică și Firmă din tabelul denumit Persoane de contact, mai precis înregistrările în care valoarea câmpului Localitate este Sibiu.”

Să privim exemplul, câte o clauză o dată, pentru a vedea cum funcționează sintaxa SQL.

Clauza SELECT

SELECT [E-mail Address], Company

Aceasta este clauza SELECT. Ea cuprinde un operator (SELECT) urmat de doi identificatori ([Adresă de poștă electronică] și Firmă).

Dacă un identificator conține spații sau caractere speciale (cum ar fi „Adresă de poștă electronică”), trebuie cuprins între paranteze drepte.

O clauză SELECT nu trebuie să menționeze ce tabele conțin câmpurile și nu poate specifica nicio condiție pe care să o îndeplinească datele de inclus.

Clauza SELECT apare întotdeauna în fața clauzei FROM într-o instrucțiune SELECT.

Clauza FROM

FROM Contacts

Aceasta este clauza FROM. Aceasta cuprinde un operator (FROM) urmat de un identificator (Contacte).

O clauză FROM nu listează câmpurile care să fie selectate.

Clauza WHERE

WHERE City="Seattle"

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.

Puteți să efectuați multe acțiuni pe care SQL vi le permite, utilizând clauzele SELECT, FROM și WHERE. Mai multe informații despre cum să utilizați aceste clauze sunt prezentate în aceste secțiuni de la sfârșitul articolului:

Mai multe despre clauza SELECT

Mai multe despre clauza FROM

Mai multe despre clauza WHERE

Sortarea rezultatelor: ORDER BY

La fel ca Microsoft Office Excel, Access vă permite să sortați rezultatele interogării într-o foaie de date. De asemenea, este posibil să specificați în interogare cum doriți să sortați rezultatele atunci când se execută interogarea, utilizând o clauză ORDER BY. Dacă utilizați clauza ORDER BY, aceasta este ultima clauză din instrucțiunea SQL.

O clauză ORDER BY conține o listă de câmpuri pe care doriți să le utilizați pentru sortare, în aceeași ordine în care aplicați operațiunile de sortare.

De exemplu, să presupunem că doriți ca rezultatele să fie filtrate mai întâi după valoarea câmpului Firmă în ordine descrescătoare și  - dacă există înregistrări cu aceeași valoare pentru Firmă - sortate apoi după valorile din câmpul Adresă de poștă electronică în ordine crescătoare. Clauza ORDER BY poate arăta astfel:

ORDER BY Company DESC, [E-mail Address]

Notă : În mod implicit, Access sortează valorile în ordine crescătoare (A-Z, de la mic la mare). Utilizați cuvântul cheie DESC pentru a sorta în schimb valorile în ordine descrescătoare.

Pentru mai multe informații despre clauza ORDER BY, vedeți subiectul Clauza ORDER BY.

Începutul paginii

Lucrul cu date rezumate: GROUP BY și HAVING

Uneori doriți să lucrați cu date rezumate, cum ar fi numărul total de vânzări dintr-o lună sau cu cele mai scumpe elemente dintr-un stoc. Pentru a face acest lucru, aplicați o funcție agregată la un câmp din clauza SELECT. De exemplu, dacă doriți ca interogarea să afișeze numărul de adrese de poștă electronică listate pentru fiecare firmă, clauza SELECT poate arăta astfel:

SELECT COUNT([E-mail Address]), Company

Funcțiile agregate pe care le utilizați depind de tipul de date din câmp sau de expresia pe care doriți să o utilizați. Pentru mai multe informații despre funcțiile agregate, consultați articolul Funcții agregate SQL.

Specificarea câmpurilor care nu sunt utilizate într-o funcție agregată: clauza GROUP BY

Când utilizați funcții agregate, trebuie, de obicei, să creați și o clauză GROUP BY. O clauză GROUP BY listează toate câmpurile la care nu aplicați o funcție agregată. Dacă aplicați funcții agregate la toate câmpurile dintr-o interogare, nu este necesar să creați clauza GROUP BY.

Clauza GROUP BY urmează imediat după clauza WHERE sau după clauza FROM dacă nu există nicio clauză WHERE. O clauză GROUP BY listează câmpurile așa cum apar ele în clauza SELECT.

De exemplu, continuând exemplul anterior, dacă clauza SELECT aplică o funcție agregată la [Adresă de poștă electronică], dar nu și la Firmă, clauza dvs. GROUP BY poate arăta astfel:

GROUP BY Company

Pentru mai multe informații despre clauza GROUP BY, consultați subiectul Clauza GROUP BY.

Limitarea valorilor agregate utilizând criterii de grupare: clauza HAVING

Dacă doriți să utilizați criterii pentru a limita rezultatele, dar câmpul la care doriți să aplicați criterii se utilizează într-o funcție agregată, nu este posibil să utilizați o clauză WHERE. În schimb, utilizați o clauză HAVING. O clauză HAVING funcționează la fel ca o clauză WHERE, dar se utilizează pentru datele agregate.

De exemplu, să presupunem că utilizați funcția AVG (care calculează o valoare medie) cu primul câmp din clauza SELECT:

SELECT COUNT([E-mail Address]), Company

Dacă doriți ca interogarea să restricționeze rezultatele pe baza valorii funcției COUNT, nu este posibil să utilizați criterii pentru acel câmp în clauza WHERE. În schimb, puneți criteriile într-o clauză HAVING. De exemplu, dacă doriți ca interogarea să returneze rândurile dacă există mai multe de o singură adresă de poștă electronică asociată firmei, clauza HAVING poate arăta astfel:

HAVING COUNT([E-mail Address])>1

Notă : O interogare poate avea o clauză WHERE și o clauză HAVING - criteriile pentru câmpurile care nu sunt utilizate într-o funcție agregată merg în clauza WHERE, iar criteriile pentru câmpurile utilizate în câmpurile agregate merg în clauza HAVING.

Pentru mai multe informații despre clauza HAVING, consultați subiectul Clauza HAVING.

Începutul paginii

Combinarea rezultatelor interogării: UNION

Când doriți să examinați toate datele returnate de mai multe interogări de selectare similare, ca pe un set combinat, utilizați operatorul UNION.

Operatorul UNION vă permite să combinați două instrucțiuni SELECT într-una singură. Instrucțiunile SELECT pe care le combinați trebuie să aibă același număr de câmpuri de ieșire, în aceeași ordine și cu aceleași tipuri de date sau cu tipuri de date compatibile. Când executați interogarea de uniune, datele din fiecare set de câmpuri corespunzătoare sunt combinate într-un singur câmp de ieșire, astfel încât ieșirea de interogare să aibă același număr de câmpuri ca fiecare dintre enunțurile SELECT.

Notă : În scopul efectuării unei interogări de uniune, tipurile de date Număr și Text sunt compatibile.

Când utilizați operatorul UNION, este posibil, de asemenea, să specificați dacă rezultatele interogării să includă rânduri duble, dacă există, utilizând cuvântul cheie ALL.

Sintaxa SQL de bază pentru o interogare de uniune care combină instrucțiuni SELECT arată astfel:

SELECT field_1
FROM table_1
UNION [ALL]
SELECT field_a
FROM table_a
;

De exemplu, să presupunem că aveți un tabel denumit Produse și alt tabel denumit Servicii. Ambele tabele au câmpuri care conțin numele produsului sau serviciului, prețul, garanția sau perioada de garanție și dacă oferiți produsul sau serviciul în mod exclusiv. Chiar dacă tabelul Produse stochează informații despre garanție și tabelul Servicii stochează informații despre perioada de garanție, informațiile de bază sunt aceleași (dacă un anumit produs sau serviciu este livrat cu o garanție de calitate). Aveți posibilitatea să utilizați o interogare de uniune, cum este cea următoare, pentru a combina cele patru câmpuri din cele două tabele:

SELECT name, price, warranty_available, exclusive_offer
FROM Products
UNION ALL
SELECT name, price, guarantee_available, exclusive_offer
FROM Services
;

Pentru mai multe informații despre cum să-l combinați instrucțiunile SELECT utilizând operatorul de Uniune, consultați articolul combinarea rezultatelor mai multor interogări de selectare prin utilizarea unei interogări de Uniune.

Începutul paginii

Mai multe despre clauza SELECT

Într-o instrucțiune SELECT, clauza SELECT listează câmpurile care conțin datele pe care doriți să le utilizați.

Utilizarea parantezelor drepte pentru a încadra identificatorii

Utilizați paranteze drepte pentru a încadra numele unui câmp dintr-o clauză SELECT. Dacă numele nu conține spații sau caractere speciale (cum ar fi semne de punctuație), parantezele drepte sunt opționale. Dacă numele conține spații sau caractere speciale, trebuie să utilizați paranteze.

Sfat : Un nume care conține spații este mai ușor de citit și vă ajută să economisiți timp atunci când proiectați formulare și rapoarte, însă vă poate face să scrieți mai mult atunci când scrieți instrucțiuni SQL. Luați în considerare acest fapt atunci când denumiți obiectele din baza de date.

Dacă instrucțiunea SQL are două sau mai multe câmpuri cu același nume, trebuie să adăugați numele sursei de date a fiecărui câmp la numele de câmp din clauza SELECT. Utilizați același nume pentru sursa de date pe care îl utilizați și în clauza FROM.

Selectarea tuturor câmpurilor

Dacă doriți să includeți toate câmpurile dintr-o sursă de date, listați toate câmpurile individual în clauza SELECT sau utilizați un metacaracter asterisc (*). Când utilizați un asterisc, Access determină atunci când se execută interogarea ce câmpuri conține sursa de date și include toate câmpurile în interogare. Acest lucru vă ajută să vă asigurați că interogarea rămâne actualizată dacă se adaugă câmpuri noi la sursa de date.

Într-o instrucțiune SQL, aveți posibilitatea să utilizați asteriscul cu una sau mai multe surse de date. Dacă utilizați asteriscul și există mai multe surse de date, trebuie să includeți numele sursei de date împreună cu asteriscul, pentru ca Access să poată determina din ce sursă de date să includă toate câmpurile.

De exemplu, să presupunem că doriți să selectați toate câmpurile din tabelul Comenzi, dar doar adresa de poștă electronică din tabelul Persoane de contact. Clauza SELECT poate arăta astfel:

SELECT Orders.*, Contacts.[E-mail Address]

Notă : Urmăriți contextele în care ați utilizat asteriscul. Dacă sunt adăugate mai târziu câmpuri noi la sursa de date și nu ați planificat ținând cont de ele, rezultatele interogării pot fi diferite de ce vă doriți.

Selectarea valorilor distincte

Dacă știți că instrucțiunea dvs. va selecta date redundante și ați prefera mai degrabă să vedeți valori distincte, utilizați cuvântul cheie DISTINCT în clauza SELECT. De exemplu, să presupunem că fiecare client al dvs. reprezintă interese diferite și că unii dintre aceștia utilizează același număr de telefon. Dacă doriți să vă asigurați că vedeți o singură dată același număr de telefon, clauza dvs. SELECT arată astfel:

SELECT DISTINCT [txtCustomerPhone]

Utilizarea de nume de substituție pentru câmpuri sau expresii: cuvântul cheie AS

Aveți posibilitatea să modificați eticheta afișată pentru orice câmp în vizualizarea foaie de date utilizând cuvântul cheie AS și un alias de câmp în clauza SELECT. Un alias de câmp este un nume pe care îl asociați unui câmp dintr-o interogare pentru ca rezultatele să fie mai simplu de citit. De exemplu, dacă doriți să selectați datele dintr-un câmp denumit txtTelClient și câmpul conține numere de telefon ale clienților, aveți posibilitatea să îmbunătățiți lizibilitatea rezultatelor utilizând un alias de câmp din instrucțiunea SELECT, după cum urmează:

SELECT [txtCustPhone] AS [Customer Phone]

Notă : Trebuie să utilizați un alias de câmp atunci când utilizați o expresie într-o clauză SELECT.

Selectarea prin utilizarea unei expresii

Uneori, doriți să vedeți calculele pe baza datelor dvs. sau să regăsiți doar o parte a datelor câmpului. De exemplu, să presupunem că doriți să returnați anul în care s-au născut clienții, pe baza datelor din câmpul DatăNaștere din baza de date. Clauza SELECT poate arăta astfel:

SELECT DatePart("yyyy",[BirthDate]) AS [Birth Year]

Această expresie cuprinde funcția DatePart și două argumente - „yyyy” (o constantă) și [DatăNaștere] (un identificator).

Puteți să utilizați drept câmp orice expresie validă, dacă expresia are ca rezultat o valoare unică atunci când este dată o singură valoare de intrare.

Începutul paginii

Mai multe despre clauza FROM

Într-o instrucțiune SELECT, clauza FROM specifică tabelele sau interogările care conțin datele pe care clauza SELECT le va utiliza.

Să presupunem că doriți să aflați numărul de telefon al unui client anume. Presupunând că tabelul care conține câmpul care stochează aceste date se numește tblClienți, clauza FROM ar arăta astfel:

FROM tblCustomer

Utilizarea parantezelor drepte pentru a încadra identificatorii

Utilizați paranteze drepte pentru a încadra numele unui câmp. Dacă numele nu conține spații sau caractere speciale (cum ar fi semne de punctuație), parantezele drepte sunt opționale. Dacă numele conține spații sau caractere speciale, trebuie să utilizați paranteze.

Sfat :  Un nume care conține spații este mai ușor de citit și vă ajută să economisiți timp atunci când proiectați formulare și rapoarte, însă vă poate face să scrieți mai mult atunci când scrieți instrucțiuni SQL. Luați în considerare acest fapt atunci când denumiți obiectele din baza de date.

Utilizarea numelor de substituție pentru sursele de date

Aveți posibilitatea să utilizați alt nume pentru a face referire la o sursă de date dintr-o instrucțiune SELECT utilizând un alias de tabel într-o clauză FROM. Un alias de tabel este un nume pe care îl atribuiți unei surse de date dintr-o interogare atunci când utilizați 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 când există în tabele diferite mai multe câmpuri care au același nume.

De exemplu, dacă doriți să selectați date din două câmpuri, ambele denumite ID, dintre care unul provine din tabelul tblClienți și altul din tabelul tblComenzi, clauza SELECT poate arăta astfel:

SELECT [tblCustomer].[ID], [tblOrder].[ID]

Folosind aliasuri de tabel în clauza FROM, faceți ca interogarea să devină mai simplu de tastat. Clauza FROM, cu aliasuri de tabel, poate arăta astfel:

FROM [tblCustomer] AS [C], [tblOrder] AS [O]

Apoi puteți să utilizați aceste aliasuri de tabel în clauza SELECT, după cum urmează:

SELECT [C].[ID], [O].[ID]

Notă : Când utilizați un alias de tabel, aveți posibilitatea să faceți referire la sursa de date din instrucțiunea SQL utilizând aliasul sau numele complet al sursei de date.

Unirea datelor asociate

Când aveți nevoie de o modalitate de a combina perechi de înregistrări din două surse de date într-o singură înregistrare dintr-un rezultat de interogare, aveți posibilitatea să efectuați 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 informațiile din două surse de date, efectuați o operațiune de asociere pe câmpul pe care îl au în comun. Când valorile stocate în acest câmp corespund, datele din înregistrări sunt combinate în rezultate.

Pe lângă combinarea datelor, o asociere se mai utilizează pentru a specifica dacă să includeți înregistrări din tabel dacă nu există nicio înregistrare provenită din tabelul asociat.

De exemplu, să presupunem că într-o interogare doriți să utilizați datele din două tabele: tblClienți și tblComenzi. Cele două tabele au câte un câmp, IDClient, care identifică un client. Fiecare înregistrare din tabelul tblClienți poate avea una sau mai multe înregistrări în tabelul tblComenzi și valorile corespunzătoare pot fi determinate de valorile din câmpul IDClient.

Dacă doriți să asociați tabelele astfel încât interogarea să combine înregistrările din tabele, excluzând înregistrările din orice tabel dacă nu există nicio înregistrare corespunzătoare în celălalt tabel, clauza FROM poate arăta astfel (sfârșitul de linie este adăugat aici pentru lizibilitate):

FROM [tblCustomer] INNER JOIN [tblOrder]
ON [tblCustomer].[CustomerID]=[tblOrder].[CustomerID]

În Microsoft Office Access, asocierile apar în clauza FROM a unei instrucțiuni SELECT. Există două tipuri de asocieri: asocieri interne și asocieri externe. Secțiunea următoare explică aceste două tipuri de asocieri.

Asocieri interne

Asocierile interne sunt cel mai obișnuit tip de asocieri. Când se execută o interogare cu o asociere internă, singurele înregistrări incluse în rezultatele interogării sunt cele în care există o valoare comună în ambele tabele asociate.

O asociere internă are următoarea sintaxă (sfârșitul de linie este adăugat aici pentru lizibilitate):

FROM table1 INNER JOIN table2
ON table1.field1 compopr table2.field2

Tabelul următor descrie părțile unei operații INNER JOIN.

Parte

Descriere

tabel1, tabel2

Numele tabelelor din care se combină înregistrări.

câmp1, câmp2

Numele câmpurilor care sunt asociate. Dacă nu sunt numerice, câmpurile trebuie să fie de același tip de date și să conțină același fel de date, dar nu trebuie să aibă același nume.

operator de comparație

Orice operator de comparație relativă: „=”, „<”, „>” „<=”, „>=” sau „<>”.

Asocierile externe

Asocierile externe se aseamănă cu asocierile interne, deoarece spun unei interogări cum să combine informațiile din două surse. Ele sunt diferite, deoarece specifică, de asemenea, dacă să se includă date atunci când nu există o valoare comună. Asocierile externe sunt direcționale: este posibil să specificați dacă să includeți toate înregistrările de la prima sursă de date specificată în asociere (denumită asociere la stânga) sau să le includeți pe toate cele din a doua sursă de date din asociere (denumită asociere la dreapta).

O asociere externă are sintaxa următoare:

FROM tabel1 [ LEFT | RIGHT ] JOIN tabel2
ON tabel1.câmp1 operator de comparație tabel2.câmp2

Tabelul următor descrie părțile operațiilor LEFT JOIN și RIGHT JOIN.

Parte

Descriere

tabel1, tabel2

Numele tabelelor din care se combină înregistrări.

câmp1, câmp2

Numele câmpurilor care sunt asociate. Câmpurile trebuie să fie de același tip de date și să conțină aceleași tipuri de date, dar nu trebuie neapărat să aibă același nume.

operator de comparație

Orice operator de comparație relativă: "=," "<," ">," "<=," ">=," or "<>."

Pentru mai multe informații despre asocieri, consultați articolul Asocierea tabelelor și a interogărilor.

Începutul paginii

Mai multe despre clauza WHERE

Atunci când doriți să utilizați date pentru a limita numărul de înregistrări returnate într-o interogare, utilizați interogarea criterii în clauza WHERE a unei instrucțiuni SELECT. Un criteriu de interogare se aseamănă cu o formulă - este un șir ce poate cuprinde referințe de câmp, operatori și constante. Criteriile de interogare sunt de tipul expresie.

Următorul tabel afișează câteva exemple de criterii și explică modul în care funcționează.

Criterii

Descriere

>25 and <50

Criteriul se aplică unui câmp de tip Număr, cum ar fi Preț sau UnitățiÎnStoc. Se vor include numai acele înregistrări unde câmpurile conțin o valoare mai mare decât 25 și mai mică decât 50.

DateDiff ("yyyy", [DataNașterii], Date()) > 30

Acest criteriu se aplică unui câmp Dată/Oră, cum ar fi DataNașterii. Se includ în rezultatele interogării numai înregistrările unde numărul 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 oricărui tip de câmp pentru a afișa înregistrările unde valoarea câmpului este nulă.

Așa cum arată și tabelul anterior, criteriile pot fi diferite, în funcție de tipul de date al câmpului pentru care se aplică și de cerințele dvs. Anumite criterii sunt simple și utilizează operatori și constante de bază. Altele sunt complexe și utilizează funcții și operatori speciali și includ referințe la câmpuri.

Important : Dacă un câmp este utilizat cu o funcție agregată, nu este posibil să specificați criterii pentru acel câmp într-o clauză WHERE. În schimb, utilizați o clauză HAVING pentru a specifica criteriile pentru câmpurile agregate. Pentru mai multe informații, vedeți secțiunea Lucrul cu date rezumate: GROUP BY și HAVING.

Sintaxa clauzei WHERE

O clauză WHERE are următoarea sintaxă de bază:

WHERE field = criterion

De exemplu, să presupunem că doriți numărul de telefon al unui client, dar ați reținut doar că numele de familie al clientului este Calinov. În loc să vă uitați 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 găsirea numărului de telefon dorit. Presupunând că numele de familie sunt depozitate într-un câmp denumit NumeDeFamilie, clauza dvs. WHERE va apărea astfel:

WHERE [LastName]='Bagel'

Notă : Nu este necesar să vă bazați criteriile din clauza WHERE pe echivalența valorilor. Puteți să utilizați alți operatori de comparație, cum ar fi mai mare decât (>) sau mai mic decât (<). De exemplu, WHERE [Preț]>100.

Utilizați clauza WHERE pentru a combina surse de date

Uneori, poate că doriți să combinați surse de date în baza unor câmpuri care au date potrivite, dar care au tipuri diferite de date. De exemplu, un câmp dintr-un tabel poate avea un tip de date Număr și doriți să comparați acest câmp cu un câmp din alt tabel care are un tip de date Text.

Nu este posibil să creați o asociere între câmpurile cu tipuri de date diferite. Pentru a combina date din două surse de date pe baza valorilor din câmpurile care au tipuri de date diferite, creați o clauză WHERE care utilizează un câmp drept criteriu pentru celălalt câmp, utilizând cuvântul cheie LIKE.

De exemplu, să presupunem că doriți să utilizați datele din tabel1 și tabel2, dar doar atunci când datele din câmp1 (un câmp text din tabel1) se potrivesc cu datele din câmp2 (un câmp numeric din tabel2). Clauza WHERE ar arăta astfel:

WHERE field1 LIKE field2

Pentru mai multe informații despre cum să creați criteriile care se utilizează într-o clauză WHERE, consultați articolul exemple de criterii de interogare.

Începutul paginii

Notă : Exonerare de răspundere pentru traducere automată: Acest articol a fost tradus de un sistem computerizat, fără intervenție umană. Microsoft oferă aceste traduceri automate pentru a ajuta utilizatorii vorbitori de alte limbi decât engleza să beneficieze de conținutul despre produsele, serviciile și tehnologiile Microsoft. Pentru că articolul a fost tradus de un computer, poate conține erori de vocabular, sintaxă sau gramatică.

Extindeți-vă competențele
Explorați instruirea
Fiți primul care obține noile caracteristici
Alăturați-vă utilizatorilor Office Insider

Au fost utile aceste informații?

Vă mulțumim pentru feedback!

Vă mulțumim pentru feedback! Se pare că ar fi util să luați legătura cu unul dintre agenții noștri de asistență Office.

×