SQL AS alias iseebugs.plAlias

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" lub actor "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

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *