Acesta este un articol dintr-un set de articole despre Access SQL. Acest articol descrie modalitatea de scriere a unei clauze FROM și utilizează exemple pentru a ilustra diferite tehnici pe care le puteți utiliza într-o clauză FROM.
Într-o instrucțiune SELECT, specificați sursele de date în clauza FROM. Clauza FROM poate conține și o operațiune de unire. Utilizați o operațiune JOIN pentru a potrivi și a combina date de la două surse de date, de exemplu, de la două tabele sau de la un tabel și o interogare.
Pentru o prezentare generală a Access SQL, consultați articolul Access SQL: concepte de bază, vocabular și sintaxă.
În acest articol
Specificarea surselor de date
Într-o instrucțiune SELECT, clauza FROM specifică tabelele sau interogările care conțin datele pe care le va utiliza clauza SELECT.
Să presupunem că doriți să știți numărul de telefon al unui anumit client. Presupunând că tabelul care conține câmpul ce stochează aceste date se numește tblCustomer, clauza FROM ar arăta astfel:
FROM tblCustomer
Puteți utiliza paranteze drepte pentru a încadra numele. Dacă numele nu conține spații sau caractere speciale (cum ar fi semne de punctuație), parantezele drepte sunt opționale. Dacă numele conține spații sau caractere speciale, trebuie să utilizați paranteze drepte.
Sfat: Un nume care conține spații este mai ușor de citit și vă poate economisi timp atunci când proiectați formulare și rapoarte, dar vă poate face să tastați mai mult atunci când scrieți instrucțiuni SQL. Luați în considerare acest lucru atunci când denumiți obiectele din baza de date Access.
Utilizarea numelor de substituție pentru sursele de date
Puteți utiliza un nume diferit pentru a face referire la un tabel într-o instrucțiune SELECT, utilizând un alias de tabel în clauza FROM. Un alias de tabel este un nume pe care îl atribuiți unei surse de date dintr-o interogare atunci când utilizați o expresie ca sursă de date sau pentru a face instrucțiunea SQL mai simplu de tastat și de citit. Acest lucru poate fi util mai ales dacă numele sursei de date este lung sau dificil de tastat, mai ales atunci când există mai multe câmpuri cu același nume din tabele diferite.
De exemplu, dacă doriți să selectați date din două câmpuri, ambele denumite ID, dintre care unul provine din tabelul tblOrder și altul din tabelul tblOrder, clauza SELECT poate arăta similar cu aceasta:
SELECT [tblCustomer].[ID], [tblOrder].[ID]
Utilizând aliasuri de tabel în clauza FROM, puteți face interogarea mai simplu de tastat. Clauza FROM cu aliasuri de tabel poate arăta astfel:
FROM [tblCustomer] AS [C], [tblOrder] AS [O]
Apoi puteți să utilizați aceste aliasuri de tabel în clauza SELECT, după cum urmează:
SELECT [C].[ID], [O].[ID]
Notă: Atunci când utilizați un alias de tabel, puteți face referire la tabel în instrucțiunea SQL utilizând aliasul sau numele complet al tabelului.
Unirea datelor corelate
Atunci când aveți nevoie de o modalitate de a combina perechi de înregistrări din două surse de date în înregistrări individuale în rezultatul unei interogări, puteți efectua o unire. O unire este o operațiune SQL care specifică modul în care sunt unite două surse de date și dacă datele dintr-o sursă trebuie să fie incluse dacă nu există date corespondente din cealaltă sursă.
Pentru a combina informațiile din două surse de date, efectuați o operațiune de unire în câmpul pe care îl au în comun. Atunci când valorile stocate în acest câmp se potrivesc, datele din înregistrări sunt combinate în rezultate.
În plus față de combinarea datelor, puteți să utilizați o unire pentru a specifica dacă să includeți înregistrări din tabel dacă nu există nicio înregistrare provenită din tabelul unit.
De exemplu, să presupunem că doriți să utilizați date din două tabele într-o interogare: tblCustomer și tblOrder. Cele două tabele au un câmp comun, CustomerID, care identifică un client. Fiecare înregistrare din tabelul tblCustomer poate avea una sau mai multe înregistrări corespondente în tabelul tblOrder și valorile corespondente pot fi determinate de valorile din câmpul CustomerID.
Dacă doriți să uniți tabelele astfel încât interogarea să combine înregistrările din tabele, excluzând înregistrările din fiecare tabel, dacă nu există nicio înregistrare corespunzătoare în celălalt tabel, clauza FROM poate semăna cu următoarea (aici a fost adăugat un sfârșit de linie, pentru lizibilitate):
FROM [tblCustomer] INNER JOIN [tblOrder]
ON [tblCustomer].[CustomerID]=[tblOrder].[CustomerID]
În Access, unirile apar în clauza FROM a unei instrucțiuni SELECT. Există două tipuri de uniri: uniri interne și uniri externe. Următoarele secțiuni explică aceste două tipuri de uniri.
Unirile interne
Unirile interne reprezintă cel mai comun tip de unire. Atunci când rulează o interogare cu o unire internă, singurele înregistrări care sunt incluse în rezultatele interogării sunt înregistrările în care există o valoare comună în ambele tabele unite.
O unire internă are următoarea sintaxă (aici a fost adăugat un sfârșit de linie, pentru lizibilitate):
FROM table1 INNER JOIN table2
ON table1.field1 compopr table2.field2
Următorul tabel descrie diferitele părți ale unei operațiuni INNER JOIN.
Parte |
Descriere |
tabel1, tabel2 |
Numele tabelelor din care se combină înregistrările. |
câmp1, câmp2 |
Numele câmpurilor care se unesc. Dacă nu sunt numerice, câmpurile trebuie să fie de același tip de date și să conțină același tip de date, dar nu trebuie neapărat să aibă același nume. |
oprcomp |
Orice operator de comparație relativă: "=," "<," ">," "<=," ">=," sau "<>." |
Unirile externe
Unirile externe sunt asemănătoare cu cele interne, deoarece spun unei interogări cum să combine informațiile din două surse. Ele sunt însă diferite, deoarece specifică și dacă să fie incluse date în care nu există nicio valoare comună. Unirile externe sunt direcționale: puteți să specificați dacă doriți să includeți toate înregistrările din prima sursă de date specificată în unire (denumită unire la stânga) sau dacă includeți toate înregistrările din a doua sursă de date din unire (denumită unire la dreapta).
O unire externă are următoarea sintaxă:
FROM tabel1 [ LEFT | RIGHT ] JOIN tabel2
ON tabel1.câmp1 operatorcomparație tabel2.câmp2Următorul tabel descrie diferitele părți ale operațiunilor LEFT JOIN și RIGHT JOIN.
Parte |
Descriere |
tabel1, tabel2 |
Numele tabelelor din care se combină înregistrările. |
câmp1, câmp2 |
Numele câmpurilor care se unesc. Câmpurile trebuie să fie de același tip de date și să conțină aceleași tipuri de date, dar nu trebuie neapărat să aibă același nume. |
operatorcomparație |
Orice operator de comparație relativă: "=," "<," ">," "<=," ">=," sau "<>." |
Pentru mai multe informații despre uniri, consultați articolul Unirea tabelelor și interogărilor.