SQL - Alijansa


Utvrđivanje pseudonima tabele

Kada se više tabela spaja u jednom upitu, trebate ispred imena svake kolone dodati ime tabele kojoj pripada, kao što su employees.dept_id, departmani.dept_id itd., Kako biste izbjegli zbrku i dvosmislenu grešku u koloni u različitim tabelama imaju isto ime. Ali, ako su imena tabela dugačka i pojavljuju se nekoliko puta u upitu, tada bi pisanje upita postalo težak i dosadan zadatak. Dakle, da biste uštedjeli vrijeme i izbjegli pisanje kompletnih imena tabela, svakoj tabeli možete dati kratko ime alias i uputiti se na njegove kolone koristeći taj pseudonim u upitu. Da bismo to jasno razumjeli, pogledajmo sljedeće tabelu zaposlenih i odjela.



Evo upita koji dohvaća ID, ime i naziv njihovog odjela zaposlenih spajanjem tabela zaposlenih i odjela koristeći zajedničko polje dept_id.

SELECT employees.emp_id, employees.emp_name, departments.dept_name
FROM employees LEFT JOIN departments
ON employees.dept_id = departments.dept_id ORDER BY emp_id;

Evo kompaktne verzije prethodnog upita koja koristi pseudonime tabele:

SELECT t1.emp_id, t1.emp_name, t2.dept_name
FROM employees AS t1 LEFT JOIN departments AS t2
ON t1.dept_id = t2.dept_id ORDER BY emp_id;

Ako izvršite bilo koji od ovih izraza, dobit ćete isti izlaz, kao što slijedi:



Kao što vidite koliko napora za kucanje možemo uštedjeti koristeći pseudonime tabele.



Definisanje pseudonima za kolone tabela

U MySQL-u, kada koristite SQL funkciju za generisanje prilagođenog izlaza, ime izlazne kolone možda neće biti čitljivo za ljude ili ga je vrlo teško razumjeti. U tom slučaju pseudonime možete koristiti za privremeno davanje drugog imena izlaze kolone. Razmotrite sljedeći upit u kojem smo koristili izraz za ponovno formatiranje datuma u hire_date kolonu za generisanje prilagođenih rezultata:

--Sintaksa za MySQL Database 
SELECT emp_name, DATE_FORMAT(hire_date, '%M %e, %Y') FROM employees;

Ako izvršite gornju izjavu, dobit ćete izlaz otprilike ovako:



Kao što vidite, oznaka posljednje kolone u našem izlazu dugačka je i nezgrapna. Ovaj problem možemo riješiti pomoću pseudonima kolona, kao u idućem primjeru:

-- Sintaksa za MySQL Database 
SELECT emp_name, DATE_FORMAT(hire_date, '%M %e, %Y') AS hire_date
FROM employees;

Ako izvršite gornju izjavu, dobit ćete čitljiviji izlaz, kao u idućem primjeru: