Często w zapytaniach SQL widzimy zapis podobny do poniższego:
SELECT
a.first_name AS actor_name
FROM actor AS a;
Dla osób które zaczynają pracę z SQL może być to trochę nie zrozumiałe, po co są jest AS oraz a i czy nie da się pisać zapytań bez nich?
AS – alias
Alias służy do nadania tymczasowej lub zastępczej nazwy różnym obiektom znajdującym się w naszej bazie danych.
W powyższym przykładzie nadaliśmy tymczasową nazwę a tabeli actor
, a kolumnie first_name
zastępczą nazwę actor_name
. Daje nam to co najmniej dwie korzyści
- możemy zwrócić nasze kolumny ze zmienionymi danymi lub tworzyć własne nazwy kolumn jeżeli są one wymagane przez logikę biznesową.
- krótsza nazwa tabeli na której pracujemy
Do celów dalszej analizy załóżmy, że posiadamy tabelę actor
która ma 4 kolumny actor_id
, first_name
, last_name oraz last_Update
.
Aliasy tabel + autouzupełnianie
Aliasy tabel są to tymczasowe nazwy tabel które są nam potrzebne do łatwiejszego pisania zapytań. Alias w jego podstawowej wersji tworzymy poprzez dodanie słowa kluczowego AS po nazwie tabeli a następnie jej tymczasowej nazwy najczęściej w postaci pierwszej litery tabeli. Ponieważ zapytanie ma zasięg lokalny i łatwo sprawdzić jakiej tabeli dotyczy alias np. a, nie ma potrzeby na siłę trzymać się w tym przypadku zasad, że nazwa zmiennej ma być czytelna i od razu informować za co odpowiada.
Krótsza nazwa tabeli zwłaszcza w połączeniu z autouzupełnianiem kolumn przyspiesza pisanie zapytań a przede wszystkim tworzy kod czytelniejszym oraz eliminuje błędy związane ze źle wprowadzonymi nazwami kolumn i tabel.
W pgAdmin 4 autouzupełnianie jest uruchamiane poprzez kombinację klawiszy ctrl+space, ale każde narzędzie ma swoje własne skróty. Warto je poznać i z nich korzystać.

Jest to szczególnie pomocne przy pisaniu nieco bardziej skomplikowanych zapytań niż zwykły SELECT np. przy tworzeniu JOIN’ów. Przy ręcznym wpisywaniu pełnych nazw kolumn łatwo o literówkę. Korzystając z autouzupełnienia mamy pewność, że nazwa kolumny jest z tabeli do której się odwołujemy a ponadto, że nazwa zostanie poprawnie wprowadzona.
SELECT
a.first_name
, a.last_name
, co.country
, ci.city
FROM actor AS a
JOIN country AS co ON co.country_id = a.country_id
JOIN city AS ci ON ci.city_id = co.city_id;
Załóżmy, że tabel actor posiada jeszcze kolumnę country. Jeżeli byśmy chcieli połączyć taką tabelę z innymi tabelami bez aliasów i bez autouzupełniania łatwo było by o pomyłkę, a często zapytania SQL mają więcej JOIN’ów niż 2.
Tworzenie aliasów
Wiemy jak zrobić najprostszy alias na przykładzie tabeli i po co je robimy dla tabel. Teraz zajmiemy się aliasami kolumn i różnymi sposobami ich tworzenia.
Poniżej jest kilka sposobów ich tworzenia które pokrótce omówię
- za pomocą słowa kluczowego AS np.
actor AS a
- pomijając słowo kluczowe AS np.
- actor a
- za pomocą cudzysłowa ze słowem AS jak i bez niego np.
actor AS "a"
lubactor "a"
Pierwszy sposób jest dobry jeżeli chcemy w jasny sposób przekazać jak będzie nazywała się prezentowana kolumna. Jest to pomocne w bardziej skomplikowanych definicjach tabel gdzie wykorzystujemy np. CASE i chcemy zakomunikować zmianę nazwy jak w przykładzie poniżej. Drugim powodem dla którego warto z niego korzystać jest samo zaznajomienie się z aliasami.
SELECT
m.number
, CASE
WHEN m.number % 2 = 0
THEN m.number * 8
ELSE
m.number * 9
END AS res
FROM multiplication AS m
Drugi sposób jest dobry do prostych zapytań SQL.
Każdy też ma swoje przyzwyczajenia, dlatego stosuj aliasy w jakiej chcesz formie byle to było czytelne dla innych użytkowników. Oczywiście pomijanie AS jest zgodne ze standardem SQL, ale jego stosowanie zwiększa czytelność i jest dobrym zwyczajem.
Ostatnim ze sposobów jest zapisanie aliasu jako String’a. Dzięki temu możemy w nazwie wykorzystać białe znaki oraz rozróżniać wielkość liter jak w poniższym przykładzie.
SELECT
CONCAT(a.first_name, " ", a.last_name) AS "Full name"
FROM actor a;
W powyższym kodzie zwracamy kolumnę Full name która jako wynik przekazuje połączone imię i nazwisko.
Możemy również w taki sposób zaaliasować tabelę. Co prawda powstanie pewnego rodzaju potworek ale jeżeli chcemy to tak możemy zrobić. W poniższym przykładzie odwołania do tabel musimy pisać tak jak nasz alias to znaczy w cudzysłowach.
SELECT
CONCAT("my actor".first_name, "my actor".last_name) AS "Full name"
FROM actor AS "my actor";
Podsumowanie
Poznaliśmy aliasy jak się je tworzy i z nimi pracuje na przykładzie bazy danych PostgreSQL. Pamiętajmy aliasy mają nam pomagać pracować aby nasze zapytania były prostsze i czytelniejsze zarówno dla nas jak i dla innych użytkowników.
- Aliasy tabel służą głównie do ułatwienia pracy przy bardziej złożonych zapytaniach np. JOIN.
- Aliasy kolumn są pomocne przy zmienianiu tabel wynikowych szczególnie przy tworzeniu widoków.
- Używanie cudzysłowa do aliasowania jest niezalecane ze względu na konieczność używania ich przy każdym odwołaniu do tabeli
- Unikaj aliasów niejasnych które wprowadzają w błąd