Access SQL: concepte de bază, vocabular și sintaxă

Atunci când doriți să regăsiți date dintr-o bază de date, solicitați datele utilizând o limbă de interogare structurată sau SQL. SQL este o limbă de computer care seamănă îndeaproape cu limba engleză, dar programele de bază de date înțeleg. Fiecare interogare pe care o derulează utilizează SQL în culise.

Înțelegerea modului în care funcționează SQL vă poate ajuta să creați interogări mai bune și poate fi mai ușor să înțelegeți cum să remediați o interogare care nu returnează rezultatele dorite.

Acesta este un articol dintr-un set de articole despre Access SQL. Acest articol descrie utilizarea de bază a SQL pentru a selecta date și utilizează exemple pentru a ilustra sintaxa SQL.

În acest articol

Ce este SQL?

SQL este o limbă de computer pentru lucrul cu seturi de date și relațiile dintre ele. Programele de baze de date relationale, cum ar fi Microsoft Office Access, utilizează SQL pentru a lucra cu datele. Spre deosebire de multe limbi de computer, SQL nu este greu de citit și de înțeles, chiar și pentru un novice. La fel ca multe limbi pentru computere, SQL este un standard internațional care este recunoscut de organismele 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. Atunci când utilizați SQL, trebuie să utilizați sintaxa corectă. Sintaxa este un set de reguli prin care elementele unei limbi sunt combinate corect. Sintaxa SQL se bazează pe sintaxa în limba engleză și utilizează multe dintre aceleași elemente ca sintaxa Visual Basic for Applications (VBA).

De exemplu, o instrucțiune SQL simplă care regăsește o listă de nume de familie pentru persoanele de contact ale căror prenume este Maria poate semăna cu aceasta:

SELECT Last_Name
FROM Contacts
WHERE First_Name = 'Mary';

Notă: SQL nu este utilizat doar pentru manipularea datelor, ci și pentru crearea și modificarea proiectării obiectelor bazei de date, cum ar fi tabelele. Partea din SQL care este utilizată pentru crearea și modificarea obiectelor bazei de date se numește Language data-definition (DDL). Acest subiect nu acoperă DDL. Pentru mai multe informații, consultați articolul crearea sau modificarea tabelelor sau indexurilor utilizând o interogare de definiție a datelor.

Selectare declarații

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 dintr-o bază de date. Aceasta include următoarele:

  • Ce tabele conțin datele.

  • Modul în care sunt asociate datele din surse diferite.

  • Ce câmpuri sau calcule vor genera datele.

  • Criterii la care trebuie să se potrivească datele.

  • Dacă și cum să sortați rezultatele.

Clauze SQL

Ca o propoziție, o instrucțiune SQL are clauze. Fiecare clauză efectuează o funcție pentru instrucțiunea SQL. Unele clauze sunt necesare într-o instrucțiune SELECT. Următorul tabel listează cele mai comune clauze SQL.

Clauza SQL

Ce face

Obligatoriu

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 care trebuie îndeplinite de fiecare înregistrare pentru a fi inclusă în rezultate.

Nu

COMANDĂ DUPĂ

Specifică modul 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.

Numai dacă există astfel de câmpuri

HAVING

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

Nu

Termeni SQL

Fiecare clauză SQL este compusă din termeni, comparabilă cu părți de vorbire. Următorul tabel listează tipurile de termeni SQL.

Termen SQL

Parte comparabilă a vorbirii

Definiție

Exemplu

Identificator

substantiv

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

Clienții. [Număr de telefon]

operator

verb sau adverb

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

AS

constantă

substantiv

O valoare care nu se modifică, cum ar fi un număr sau un NULL.

42

expresie

adjectivale

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ă: selectare, de la și unde

O instrucțiune SQL preia formularul 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 considerare utilizarea unei linii pentru fiecare clauză pentru a contribui la îmbunătățirea lizibilității declarațiilor SQL pentru dvs.

  • Fiecare instrucțiune SELECT se termină cu un semi-colon (;). Semi-colonul poate să apară la sfârșitul ultimei clauze sau pe o linie, singur la sfârșitul instrucțiunii SQL.

Un exemplu în Access

Următoarele ilustrează ce este posibil să arate o instrucțiune SQL pentru o interogare de selectare simplă în Access:

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

1. Selectați clauză

2. din clauza

3. clauza WHERE

Acest exemplu de instrucțiune SQL citește "Selectați datele stocate în câmpurile numite adresă de E-mail și firmă din tabelul denumit persoane de contact, în special acele înregistrări în care valoarea orașului câmp este Seattle."

Să analizăm exemplul, o singură clauză odată, pentru a vedea cum funcționează sintaxa SQL.

Clauza SELECT

SELECT [E-mail Address], Company

Aceasta este clauza SELECT. Acesta constă într-un operator (selectați), urmat de doi identificatori ([adresă de E-mail] și firmă).

Dacă un identificator conține spații sau caractere speciale (cum ar fi "adresă de E-mail"), acesta trebuie să fie încadrat între paranteze drepte.

O clauză SELECT nu trebuie să spună ce tabele conțin câmpurile și nu poate specifica condiții care trebuie îndeplinite de 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. Acesta constă dintr-un operator (de la), urmat de un identificator (persoane de contact).

O clauză FROM nu listează câmpurile de selectat.

Clauza WHERE

WHERE City="Seattle"

Aceasta este clauza WHERE. Acesta constă într-un operator (unde), urmat de o expresie (City = "Seattle").

Notă: Spre deosebire de clauzele selectare și de la, clauza WHERE nu este un element obligatoriu pentru o instrucțiune SELECT.

Puteți realiza multe dintre acțiunile care vă permit SQL să faceți utilizând clauzele selectare, FROM și WHERE. Mai multe informații despre modul în care utilizați aceste clauze sunt prezentate în aceste articole suplimentare:

Începutul paginii

Sortarea rezultatelor: Ordonare după

La fel ca Microsoft Excel, Access vă permite să sortați rezultatele interogării într-o foaie de date. De asemenea, puteți specifica în interogare modul în care doriți să sortați rezultatele la rularea interogării, utilizând o clauză ORDER BY. Dacă utilizați o clauză ORDER BY, aceasta este ultima clauză din instrucțiunea SQL.

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

De exemplu, să presupunem că doriți ca rezultatele să fie sortate mai întâi după valoarea firmei de câmp în ordine descrescătoare și — dacă există înregistrări cu aceeași valoare pentru firmă, sortate lângă valorile din adresa de E-mail a câmpului în ordine ascendentă. Clauza ORDER BY ar semăna cu următoarea:

ORDER BY Company DESC, [E-mail Address]

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

Pentru mai multe informații despre clauza ORDER BY, consultați clauza ORDER by pentrusubiect.

Începutul paginii

Lucrul cu date Rezumate: GRUPare după și având

Uneori doriți să lucrați cu date rezumate, cum ar fi vânzările totale într-o lună sau cele mai scumpe elemente dintr-un inventar. Pentru a face acest lucru, aplicați un 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 e-mail listate pentru fiecare firmă, clauza SELECT poate semăna cu următorul:

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

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

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

Atunci când utilizați funcții agregate, trebuie, de obicei, să creaț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 trebuie să creați clauza GROUP BY.

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

De exemplu, continuând exemplul anterior, dacă clauza SELECT aplică o funcție agregată la [adresă de E-mail], dar nu la firmă, clauza GROUP BY ar semăna cu următoarea:

GROUP BY Company

Pentru mai multe informații despre clauza GROUP BY, consultați clauza Grupare dupăsubiect.

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

Dacă doriți să utilizați criterii pentru a limita rezultatele, dar câmpul la care doriți să aplicați criteriile este utilizat într-o funcție agregată, nu puteți utiliza o clauză WHERE. În schimb, utilizați o clauză HAVING. O clauză HAVING funcționează ca o clauză WHERE, dar este utilizată pentru date 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 în funcție de valoarea funcției COUNT, nu puteți utiliza un criteriu 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ânduri dacă există mai multe adrese de e-mail asociate firmei, clauza HAVING poate semăna cu următoarea:

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

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

Pentru mai multe informații despre clauza HAVING, consultați articolul clauza having.

Începutul paginii

Combinarea rezultatelor interogării: UNION

Atunci când doriți să revizuiți toate datele returnate de mai multe interogări de selectare similare împreună, ca set combinat, utilizați operatorul UNION.

Operatorul Uniunii vă permite să combinați două instrucțiuni SELECT într-unul singur. Declarațiile 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 tipurile de date identice sau compatibile. Atunci când rulează interogarea, datele din fiecare set de câmpuri corespondente sunt combinate într-un câmp de ieșire, astfel încât rezultatul interogării să aibă același număr de câmpuri ca fiecare dintre declarațiile Select.

Notă: În scopul unei interogări de Uniune, tipurile de date număr și text sunt compatibile.

Atunci când utilizați operatorul Uniunii, puteți specifica, de asemenea, dacă rezultatele interogării trebuie să includă rânduri dublate, dacă există, utilizând cuvântul cheie.

Sintaxa SQL de bază pentru o interogare de Uniune care combină două declarații de selectare este următoarea:

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 Services. Ambele tabele au câmpuri care conțin numele produsului sau al serviciului, prețul, garanția sau disponibilitatea garanției și dacă oferiți exclusiv produsul sau serviciul. Deși tabelul Products stochează informații despre garanție, iar tabelul Services stochează informații despre garantare, informațiile de bază sunt aceleași (dacă un anumit produs sau serviciu include o promisiune de calitate). Puteți utiliza o interogare de Uniune, cum ar fi următoarele, 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ă combinați instrucțiuni SELECT utilizând operatorul Uniunii, consultați combinarea rezultatelor mai multor interogări de selectare utilizând o interogare de Uniune.

Începutul paginii

Aveți nevoie de ajutor suplimentar?

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

Au fost utile aceste informații?

Cât de mulțumit sunteți de calitatea limbajului?
Ce v-a afectat experiența?

Vă mulțumim pentru feedback!

×