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.
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] |
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:
|
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. |
|
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:
Utilizați operatorul AS pentru a defini aliasuri de tabel în clauza FROM:
Apoi puteți utiliza aceste aliasuri de tabel în clauza SELECT, după cum urmează:
|
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:
|
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 table2
ON table1.field1 = table2.field2
Vedeți mai multe informații despre utilizarea asocierilor într-o interogare în Asocierea tabelelor și interogărilor.
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.
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_offer
FROM Products UNION ALL SELECT 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.