Conectați-vă cu Microsoft
Conectați-vă sau creați un cont
Salut,
Selectați un alt cont.
Aveți mai multe conturi
Alegeți contul cu care doriți să vă conectați.
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 Limbaj de interogare structurat sau SQL. SQL este o limbă de computer care se aseamănă foarte mult cu limba engleză, dar pe care programele bazei de date o înțeleg. Fiecare interogare pe care o rulați utilizează SQL în culise.

Înțelegerea modului în care funcționează SQL vă poate ajuta să creați interogări mai bune și vă poate ajuta să înțelegeți mai ușor 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 fapte și relațiile dintre ele. Programele de baze de date relaționale, cum ar fi Microsoft Office Access, utilizează SQL pentru a lucra cu date. 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 de computer, SQL este un standard internațional care este recunoscut de organismele de standarde, 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 elementele unei limbi sunt combinate corect. Sintaxa SQL se bazează pe sintaxa în limba engleză și utilizează multe dintre elementele 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 al căror prenume este Maria poate semăna cu aceasta:

SELECT Last_Name
FROM Contacts
WHERE First_Name = 'Mary';

Notă: SQL nu se utilizează doar pentru manipularea datelor, ci și pentru crearea și modificarea proiectării obiectelor bazei de date, cum ar fi tabelele. Partea sql care este utilizată pentru crearea și modificarea obiectelor bazei de date se numește DDL (data-definition language). 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 date.

Instrucțiuni 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ă îl obțineți dintr-o bază de date. Printre acestea se numără următoarele:

  • Ce tabele conțin datele.

  • Cum sunt corelate datele din surse diferite.

  • Câmpurile sau calculele care vor produce datele.

  • Criteriile pe care datele trebuie să le potrivească pentru a fi incluse.

  • Dacă și cum se sortează rezultatele.

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 necesare într-o instrucțiune SELECT. Următorul tabel listează cele mai comune clauze SQL.

Clauza SQL

Ce face

Obligatoriu

SELECT

Liste câmpurile care conțin date de interes.

Da

FROM

Liste 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 incluse în rezultate.

Nu

ORDONARE 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ă câmpurilor care sunt rezumate în instrucțiunea SELECT.

Nu

Termeni SQL

Fiecare clauză SQL este compusă din termeni , comparabili cu părțile 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 bază de date, cum ar fi numele unui câmp.

Clienţii noştri. [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

Este o valoare care nu se modifică, cum ar fi un număr sau 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 ia forma generală:

SELECT field_1
FROM table_1
WHERE criterion_1
;

Note: 

  • Access ignoră sfârșiturile de linie dintr-o instrucțiune SQL. Totuși, luați în considerare utilizarea unei linii pentru fiecare clauză pentru a îmbunătăți lizibilitatea instrucțiunilor SQL pentru dvs. și pentru alte persoane.

  • Fiecare instrucțiune SELECT se termină cu punct și virgulă (;). Semnul punct și virgulă poate apărea 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ă cum poate arăta o instrucțiune SQL pentru o interogare de selectare simplă în Access:

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

1. Clauza SELECT

2. Clauza FROM

3. Clauza WHERE

Acest exemplu de instrucțiune SQL spune "Selectați datele stocate în câmpurile denumite Adresă de e-mail și Firmă din tabelul denumit Persoane de contact, mai exact acele înregistrări în care valoarea câmpului Localitate este Seattle".

Să ne uităm la exemplu, câte o clauză odată, pentru a vedea cum funcționează sintaxa SQL.

Clauza SELECT

SELECT [E-mail Address], Company

Aceasta este clauza SELECT. Aceasta constă într-un operator (SELECT), 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ă specifice ce tabele conțin câmpurile și nu poate specifica condițiile 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. Aceasta constă într-un operator (FROM), 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. Aceasta constă într-un operator (WHERE), urmat de o expresie (City="Seattle").

Notă: Spre deosebire de clauzele SELECT și FROM, clauza WHERE nu este un element obligatoriu al unei instrucțiuni SELECT.

Puteți realiza multe dintre acțiunile pe care SQL vă permite să le efectuați utilizând clauzele SELECT, 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 atunci când rulează interogarea, 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 câmpului Firmă în ordine descendentă și, dacă există înregistrări cu aceeași valoare pentru Firmă, sortate în continuare după valorile din câmpul Adresă de e-mail, î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ă (de la A la Z, de la cel mai mic la cel mai mare). Utilizați în schimb cuvântul cheie DESC pentru a sorta valorile în ordine descendentă.

Pentru mai multe informații despre clauza ORDER BY, consultaț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 vânzările totale dintr-o lună sau cu cele mai scumpe articole dintr-un inventar. 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 e-mail listate pentru fiecare firmă, clauza SELECT poate arăta astfel:

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

Funcțiile agregate pe care le puteți utiliza depind de tipul de date care se află în câmpul sau expresia pe care doriți să o utilizați. Pentru mai multe informații despre funcțiile agregate disponibile, consultați articolul Funcții 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, de obicei trebuie 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 trebuie să creați clauza GROUP BY.

O clauză GROUP BY urmează imediat clauza WHERE sau clauza FROM, dacă nu există nicio clauză 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 subiectul Clauza GROUP BY.

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 criterii 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 pe baza valorii acelei funcții 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 doar dacă există mai multe adrese de e-mail asociate cu firma, 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- criteriile pentru câmpurile care nu sunt utilizate într-o funcție agregată intră î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 subiectul 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 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 tipuri de date identice sau compatibile. Când rulați interogarea, datele din fiecare set de câmpuri corespondente sunt combinate într-un singur câmp de ieșire, astfel încât rezultatul interogării să aibă același număr de câmpuri ca fiecare dintre instrucțiunile de selectare.

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

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

Sintaxa SQL de bază pentru o interogare de uniune care combină două instrucțiuni SELECT 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 un alt tabel denumit Servicii. Ambele tabele au câmpuri care conțin numele produsului sau serviciului, prețul, garanția sau disponibilitatea garanției și dacă oferiți produsul sau serviciul în mod exclusiv. Deși tabelul Produse stochează informații despre garanție, iar tabelul Servicii stochează informații despre garanție, informațiile de bază sunt aceleași (indiferent dacă un anumit produs sau serviciu include o promisiune de calitate). Puteți utiliza o interogare de uniune, cum ar fi următoarea, 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 combinarea instrucțiunilor SELECT utilizând operatorul UNION, consultați Combinarea rezultatelor mai multor interogări de selectare utilizând o interogare de uniune.

Începutul paginii

Aveți nevoie de ajutor suplimentar?

Doriți mai multe opțiuni?

Explorați avantajele abonamentului, navigați prin cursurile de instruire, aflați cum să vă securizați dispozitivul și multe altele.

Comunitățile vă ajută să adresați întrebări și să răspundeți la întrebări, să oferiți feedback și să primiți feedback de la experți cu cunoștințe bogate.

Au fost utile aceste informații?

Cât de mulțumit sunteți de calitatea limbajului?
Ce v-a afectat experiența?
Apăsând pe Trimitere, feedbackul dvs. va fi utilizat pentru a îmbunătăți produsele și serviciile Microsoft. Administratorul dvs. IT va avea posibilitatea să colecteze aceste date. Angajamentul de respectare a confidențialității.

Vă mulțumim pentru feedback!

×