Dacă interogările dvs. nu funcționează suficient, adăugarea unor instrucțiuni SQL de bază vă poate ajuta să vă concentrați rezultatele. Să vedem 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.
În acest articol
- Crearea unei instrucțiuni Select
- Particularizarea clauzei SELECT
- Particularizarea clauzei FROM
- Particularizarea clauzei WHERE
- Personalizarea cu operatorul UNION
Crearea unei instrucțiuni Select
O instrucțiune SQL select are două-trei clauze. Clauza SELECT spune bazei de date unde să caute date și îi solicită să returneze un rezultat specific.
Notă
Instrucțiunile SELECT se termină întotdeauna prin punct și virgulă (;) fie la sfârșitul ultimei clauze, fie separat pe o linie la sfârșitul instrucțiunii SQL.
Următoarea instrucțiune select solicită ca Access să obțină informații din coloanele Adresă de poștă electronică și Firmă, din tabelul Persoane de contact, în special locul 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 poștă electronică și Firmă). Dacă un identificator are spații sau caractere speciale (cum ar fi "Adresă de poștă electronică"), încadrați identificatorul între paranteze drepte.
2. Clauza FROM identifică tabelul sursă. În acest exemplu, are un operator (FROM) urmat de un identificator (Contacte).
3. Clauza WHERE este o clauză opțională. Exemplul are un operator (WHERE) urmat de o expresie (Localitate="Sibiu").
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:
| Clauză 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 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 |
Fiecare clauză SQL este alcătuită din termeni. Iată o listă cu câțiva termeni SQL comuni.
Particularizarea clauzei SELECT
| Particularizare | Exemplu |
|---|---|
| Pentru a vedea numai valorile distincte. Utilizați cuvântul cheie DISTINCT în clauza SELECT. |
De exemplu, dacă clienții dvs. provin din mai multe filiale și unii au același număr de telefon și doriți să vedeți un număr de telefon listat o singură dată, clauza SELECT ar fi astfel: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 care modifică o acțiune) cu un alias de câmp în clauza SELECT. Un alias de câmp este un nume pe care îl asociați unui câmp pentru ca rezultatele să fie mai simplu de citit. |
SELECT [txtCustPhone] AS [Telefon client] |
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 select. Un alias de tabel este util dacă numele numelui tabelului este lung, mai ales când aveți în tabele diferite mai multe câmpuri care au același nume. | Pentru a selecta date din două câmpuri, ambele denumite ID, dintre care unul provine din tabelul tblClienți și altul din tabelul tblComandă: SELECT [tblClient]. [ID], [tblOrder]. [ID] Utilizați operatorul AS pentru a defini aliasurile 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ă să includeți înregistrări din tabel dacă nu există nicio înregistrare provenită din 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 poate arăta clauza FROM:FROM [tblCustomer] INNER JOIN [tblOrder] ACTIVAT [tblClient]. [IDClient]=[tblComenzi]. [IDClient] |
Despre utilizarea asocierilor
Există două tipuri de asocieri, interne și externe. Asocierile interne sunt mai comune în interogări. Când rulați o interogare cu o asociere internă, rezultatul afișează doar acele elemente pentru care există o valoare comună în ambele tabele asociate.
Asocierile externe specifică dacă să se includă date atunci când nu există o valoare comună. Asocierile externe sunt direcționale, însemnând că puteți specifica dacă să includeți toate înregistrările din primul tabel specificat în asociere (denumită asociere la stânga) sau să le includeți pe toate cele din al doilea tabel din asociere (denumită asociere la dreapta). O asociere 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 vă ajută să limitați numărul de elemente returnate într-o interogare. Vedeți exemple de criterii de interogare și vă arată cum funcționează.
Un exemplu despre cum puteți particulariza clauza WHERE de bază este să limitați rezultatele unei interogări; Să presupunem că doriți să găsiți numărul de telefon al unui client și puteț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 de familie, așa că sintaxa SQL va fi:
WHERE [LastName]='Bagel'
Utilizați clauza WHERE și pentru a combina surse de date pentru coloane care au date potrivite, dar tipuri diferite de date. Acest lucru este util deoarece nu puteți crea o asociere între câmpurile cu 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 din tabelul Angajați doar atunci când tipul de mijloc fix din câmpul tip de mijloc al tabelului Active are numărul 3 în câmpul Cantitate din tabelul Angajați, iată cum ar arăta clauza WHERE:
WHERE field1 LIKE field2
Important
Nu este posibil să specificați criterii 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.
Personalizarea cu operatorul UNION
Utilizați operatorul UNION atunci când doriți să vedeți o vizualizare combinată a rezultatelor mai multor interogări de selectare asemănătoare. 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. 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. 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;
Când executați interogarea, datele din fiecare set de câmpuri corespunzătoare 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 aceleași tipuri de date sau cu tipuri de date compatibile. În scopul efectuării unei interogări de uniune, tipurile de date Număr și Text sunt compatibile.
Pentru mai multe informații despre interogările de uniune, consultați utilizarea unei interogări de uniune pentru a vizualiza un rezultat unificat din mai multe interogări.