Editarea instrucțiunilor SQL pentru a îmbunătăți rezultatele interogării
Applies ToAccess pentru Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Dacă interogările dvs. nu funcționează suficient de greu, adăugarea unor instrucțiuni de bază SQL vă poate ajuta să vă concentrați rezultatele. Să examinăm câteva tipuri de instrucțiuni SQL și clauzele sau părțile pe care le puteți edita pentru a obține rezultatele dorite.

Notă:  Acest articol nu se aplică pentru aplicațiile web Access, tipul de bază de date pe care o proiectați cu Access și o publicați online.

În acest articol

Crearea unei instrucțiuni Select

O instrucțiune SQL select are două până la trei clauze. Clauza SELECT spune bazei de date unde să caute datele și îi solicită să returneze un anumit rezultat.

Notă:  Instrucțiunile SELECT se termină întotdeauna cu punct și virgulă (;) fie la sfârșitul ultimei clauze, fie pe o linie singură la sfârșitul instrucțiunii SQL.

Următoarea instrucțiune de selectare solicită Access să obțină informații din coloanele Adresă de e-mail și Firmă, din tabelul Persoane de contact, mai exact, unde găsește "Sibiu" în coloana Localitate.

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

Interogarea de mai sus are trei clauze SELECT, FROM și WHERE.

1. Clauza SELECT listează coloanele care conțin datele pe care doriți să le utilizați și are un operator (SELECT), urmat de doi identificatori (Adresă de e-mail și Firmă). Dacă un identificator are spații sau caractere speciale (cum ar fi "Adresă de e-mail"), încadrați identificatorul între paranteze drepte.

2. Clauza FROM identifică tabelul sursă. În acest exemplu, are un operator (FROM), urmat de un identificator (Persoane de contact).

3. Clauza WHERE este o clauză opțională. Exemplul are un operator (WHERE), urmat de o expresie (City="Seattle").

Pentru mai multe informații despre interogările de selectare, consultați Crearea unei interogări de selectare simple.

Iată o listă de clauze SQL comune:

Clauza SQL

Ce face

Este 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 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

Fiecare clauză SQL este alcătuită din termeni. Iată o listă cu câțiva termeni SQL comuni.

Termen SQL

Definiție

Exemplu

Identificator

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

[Adresă de e-mail] și firmă

operator

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

AS

constantă

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

42

expresie

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

>= Produse. [Preț unitar]

Începutul paginii

Particularizarea clauzei SELECT

Particularizare

Exemplu

Pentru a vedea doar valorile distincte.

Utilizați cuvântul cheie DISTINCT în clauza SELECT.

De exemplu, dacă clienții dvs. provin din mai multe filiale diferite și unele au același număr de telefon și doriți să vedeți doar un număr de telefon listat o singură dată, clauza SELECT ar fi următoarea:

SELECT DISTINCT [txtCustomerPhone] 

Pentru a modifica modul în care apare un identificator în vizualizarea foaie de date, pentru a îmbunătăți lizibilitatea.

Utilizați operatorul AS (un cuvânt cheie care reprezintă o acțiune sau modifică o acțiune) cu un alias de câmp în clauza SELECT. Un alias de câmp este un nume pe care îl atribuiți unui câmp pentru a face rezultatele mai ușor de citit.

SELECT [txtCustPhone] AS [Customer Phone]

Particularizarea clauzei FROM

Particularizare

Exemplu

Puteți utiliza un alias de tabel sau un alt nume pe care îl atribuiți unui tabel într-o instrucțiune de selectare. Un alias de tabel este util dacă numele numelui tabelului este lung, mai ales atunci când aveți mai multe câmpuri cu același nume din tabele diferite.

Pentru a selecta date din două câmpuri, ambele denumite ID, dintre care unul provine din tabelul tblCustomer și celălalt din tabelul tblOrder:

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

Utilizați operatorul AS pentru a defini aliasuri de tabel în clauza FROM:

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

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

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

Utilizați asocieri pentru a combina perechi de înregistrări din două surse de date într-un singur rezultat sau pentru a specifica dacă se includ înregistrări din oricare tabel dacă nu există nicio înregistrare corespondentă în tabelul asociat.

Asociați tabelele astfel încât interogarea să combine elementele din tabele și să excludă elementele atunci când nu există nicio înregistrare corespondentă în celălalt tabel

Iată cum ar putea arăta clauza FROM:

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

Despre utilizarea asocierilor

Există două tipuri de uniri, uniri interne și externe. Unirile interne sunt mai comune în interogări. Atunci când rulați o interogare cu o asociere internă, rezultatul afișează doar acele elemente în care există o valoare comună în ambele tabele asociate.

Unirile externe specifică dacă se includ date în care nu există nicio valoare comună. Unirile externe sunt direcționale, ceea ce înseamnă că puteți specifica dacă să includeți toate înregistrările din primul tabel specificat în unire (denumită unire la stânga) sau să includeți toate înregistrările din al doilea tabel din unire (denumită unire la dreapta). O unire externă are următoarea sintaxă SQL:

FROM table1 [ LEFT | RIGHT ] JOIN table2ON table1.field1 = table2.field2

Vedeți mai multe informații despre utilizarea asocierilor într-o interogare în Asocierea tabelelor și interogărilor.

Începutul paginii

Particularizarea clauzei WHERE

Clauza WHERE include criterii care ajută la limitarea numărului de elemente returnate într-o interogare. Vedeți exemple de criterii de interogare și cum funcționează acestea.

Un exemplu de particularizare a clauzei WHERE de bază este limitarea rezultatelor unei interogări; Să presupunem că doriți să găsiți numărul de telefon al unui client și să vă amintiți doar numele său de familie ca Bagel. În acest exemplu, numele de familie sunt stocate într-un câmp Nume, deci sintaxa SQL ar fi:

WHERE [LastName]='Bagel'

Utilizați clauza WHERE și pentru a combina sursele de date pentru coloanele care au date corespondente, dar tipuri de date diferite. Acest lucru este util, deoarece nu puteți crea o asociere între câmpuri care au tipuri de date diferite. Utilizați un câmp drept criteriu pentru celălalt câmp, cu cuvântul cheie LIKE . De exemplu, dacă doriți să utilizați date dintr-un tabel Active și dintr-un tabel Angajați, doar atunci când tipul de mijloc fix din câmpul tip activ al tabelului Active are numărul 3 în câmpul Cantitate din tabelul Angajați, iată cum ar arăta clauza DVS. WHERE:

WHERE field1 LIKE field2

Important:  Imposibil de specificat criteriile pentru un câmp utilizat cu o funcție agregată într-o clauză WHERE. În schimb, utilizați o clauză HAVING pentru a specifica criteriile pentru câmpurile agregate.

Începutul paginii

Particularizarea cu operatorul UNION

Utilizați operatorul UNION atunci când doriți să vedeți o vizualizare combinată a rezultatelor din mai multe interogări de selectare similare. De exemplu, dacă baza dvs. de date are un tabel Produse și un tabel Servicii și ambele au trei câmpuri: ofertă exclusivă sau produs sau serviciu, preț, garanție sau garanție. 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. Puteți utiliza o interogare de uniune pentru a combina cele trei câmpuri din cele două tabele astfel:

SELECT name, price, warranty, exclusive_offerFROM ProductsUNION ALLSELECT name, price, guarantee, exclusive_offer FROM Services;

Atunci când rulați interogarea, datele din fiecare set de câmpuri corespondente sunt combinate într-un singur câmp de ieșire. Pentru a include orice rânduri dublate în rezultate, utilizați operatorul ALL.

Notă:  Instrucțiunea Select 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. În scopul unei interogări de uniune, tipurile de date Număr și Text sunt compatibile.

Pentru mai multe informații despre interogările de tip Uniune, consultați Utilizarea unei interogări de uniune pentru a vizualiza un rezultat unificat din mai multe interogări.

Î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.