Database
 sql >> Baza danych >  >> RDS >> Database

Objaśnienie aliasu SQL

Alias ​​SQL to przyjemna mała funkcja SQL, która pozwala na pisanie bardziej zwięzłego kodu i tworzenie nazw kolumn, gdy nie istnieje żadna nazwa kolumny.

Istnieją dwa typy aliasów SQL; aliasy kolumn i aliasy tabel. W tym artykule przedstawiam omówienie obu.

Co to jest alias w SQL?

W SQL alias to funkcja, która pozwala nam tymczasowo przypisać inną nazwę do kolumny lub tabeli w naszych zapytaniach SQL. Dzięki temu możemy zmniejszyć ilość kodu w naszych zapytaniach, co może być szczególnie korzystne w przypadku złożonych zapytań.

Pozwala nam również na podanie nazw kolumn aplikacjom klienckim, w których nie istnieje żadna nazwa kolumny (na przykład podczas korzystania z pola obliczeniowego).

Zalety aliasów SQL

Niektóre z głównych zalet aliasów SQL to:

  • Pozwala na nadanie bardziej czytelnych nazw nagłówkom kolumn, gdy są one prezentowane w wynikach
  • Umożliwia aplikacjom klienckim odwoływanie się do pola obliczeniowego według nazwy tam, gdzie nie istnieje nazwa kolumny
  • Pozwala zredukować kod i sprawić, że zapytania będą bardziej zwięzłe
  • Może być używany jako technika zaciemniania w celu ochrony nazw podstawowych kolumn zapytania

Powinienem zaznaczyć, że przypisanie aliasu w rzeczywistości nie zmienia nazwy kolumny lub tabeli. Podaje po prostu alternatywną nazwę, której można użyć, aby się do niej odnieść.

Składnia aliasu

Aby utworzyć alias w SQL, po prostu podążaj za nazwą kolumny lub tabeli wybranym aliasem. Możesz opcjonalnie użyć AS słowo kluczowe między nazwą kolumny/tabeli a aliasem.

Tak dla kolumn:

SELECT Column1 AS Alias1
...

or

SELECT Column1 Alias1
...

Lub tak dla stołów:

...
FROM Table1 AS Alias1
...

or

...
FROM Table1 Alias1
...

Poniższe przykłady lepiej to zilustrują.

Alias ​​kolumny

Prawdopodobnie najczęściej używanym aliasem jest alias kolumny. Alias ​​kolumny umożliwia podanie tymczasowej nazwy kolumn.

Pozwala również na podanie nazwy kolumny w miejscach, w których nie ma nazwy kolumny.

Poniższe dwa przykłady pokazują to samo zapytanie napisane z aliasami kolumn i bez nich.

Bez aliasu kolumny

Oto proste zapytanie SQL, którego nie używaj aliasów kolumn.

SELECT 
    f_name,
    l_name
FROM customers;

Wynik:

+----------+----------+
| f_name   | l_name   |
|----------+----------|
| Homer    | Connery  |
| Bart     | Pitt     |
| Nancy    | Simpson  |
| Boris    | Trump    |
+----------+----------+

W tym przypadku nie podałem żadnych aliasów kolumn, więc rzeczywiste nazwy kolumn były prezentowane jako nagłówki kolumn w wynikach.

Z aliasem kolumny

Oto to samo zapytanie, ale tym razem używam aliasów kolumn.

SELECT 
    f_name AS FirstName,
    l_name AS LastName
FROM customers;

Wynik:

+-------------+------------+
| FirstName   | LastName   |
|-------------+------------|
| Homer       | Connery    |
| Bart        | Pitt       |
| Nancy       | Simpson    |
| Boris       | Trump      |
+-------------+------------+

Zwróć uwagę, że aliasy kolumn zostały użyte jako nagłówki kolumn w wynikach.

Aliasy kolumn w polach obliczeniowych

Aliasów kolumn można również używać w polach obliczeniowych, w których nie istnieje nazwa kolumny. Nie mam na myśli kolumn wyliczanych, w których jest nazwa kolumny, ale pól, w których wartość pochodzi z wyrażenia innego niż wartość prostej kolumny.

„Jak mogło nie być nazwy kolumny?” możesz zapytać.

Cóż, w wielu przypadkach może się okazać, że w zapytaniu nie ma zwracanej nazwy kolumny. Czy kiedykolwiek widziałeś (No column name) jako nagłówek kolumny wyników zapytania?

Jest wiele sytuacji, w których może się to zdarzyć.

Bez aliasu kolumny

Oto przykład zapytania, które nie zwraca nagłówka kolumny.

SELECT 
    f_name + ' ' + l_name
FROM customers;

Wynik:

+--------------------+
| (No column name)   |
|--------------------|
| Homer Connery      |
| Bart Pitt          |
| Nancy Simpson      |
| Boris Trump        |
+--------------------+

Ten przykład łączy imię i nazwisko każdego klienta i przedstawia wynik w jednej kolumnie. Jedynym problemem jest to, że DBMS nie wie, jak nazwać kolumnę.

To doskonała okazja na alias!

Z aliasem kolumny

Oto ten sam przykład, z tym że teraz przypisuję alias kolumny do wyniku.

SELECT 
    f_name + ' ' + l_name AS FullName
FROM customers;

Wynik:

+---------------+
| FullName      |
|---------------|
| Homer Connery |
| Bart Pitt     |
| Nancy Simpson |
| Boris Trump   |
+---------------+

Dobrą rzeczą jest to, że każda aplikacja kliencka może teraz pobrać te wyniki i odwoływać się do obliczonego pola za pomocą swojego aliasu.

Zauważ, że powyższy przykład używa operatora konkatenacji ciągów SQL Server (+ ). W DB2, Oracle, PostgreSQL i SQLite musisz użyć || . A w MySQL i MariaDB użyj CONCAT() funkcjonować. Chociaż nie ma to nic wspólnego z aliasami SQL, pomyślałem, że o tym wspomnę 🙂

Aliasy ze spacjami

Możliwe jest również tworzenie aliasów ze spacjami.

Kiedy to zrobisz, otocz alias podwójnymi cudzysłowami. W niektórych DBMS można opcjonalnie użyć innych znaków (takich jak nawiasy kwadratowe [] w SQL Server).

SELECT 
    f_name + ' ' + l_name AS "Full Name"
FROM customers;

Wynik:

+---------------+
| Full Name     |
|---------------|
| Homer Connery |
| Bart Pitt     |
| Nancy Simpson |
| Boris Trump   |
+---------------+

Pamiętaj, że umieszczanie spacji w aliasach nie jest ogólnie uważane za dobrą praktykę. Spacje mogą powodować różnego rodzaju problemy w aplikacjach klienckich, dlatego generalnie należy unikać umieszczania spacji w aliasach kolumn.

Pomijanie AS Słowo kluczowe

Jak wspomniano, AS słowo kluczowe jest opcjonalne. Dlatego moglibyśmy przepisać dowolny z poprzednich przykładów bez AS słowo kluczowe.

Oto jeden przykład.

SELECT 
    f_name FirstName,
    l_name LastName
FROM customers;

Wynik:

+-------------+------------+
| FirstName   | LastName   |
|-------------+------------|
| Homer       | Connery    |
| Bart        | Pitt       |
| Nancy       | Simpson    |
| Boris       | Trump      |
+-------------+------------+

Chociaż możesz pominąć AS słowa kluczowego, niektórzy specjaliści od SQL wolą go zawsze umieszczać, ze względu na czytelność.

Niezależnie od tego, której składni wolisz używać, zalecam zachowanie spójności. Jeśli zdecydujesz się pominąć AS słowo kluczowe, a następnie pomiń je wszędzie. Jeśli zdecydujesz się go uwzględnić, dołącz go wszędzie.

Alias ​​tabeli

Alias ​​tabeli jest podobny do aliasu kolumny, ale jak sama nazwa wskazuje, alias tabeli dotyczy tabel.

Alias ​​tabeli jest również znany jako nazwa korelacji .

Alias ​​tabeli jest często używany podczas wykonywania złączeń. Może być szczególnie przydatny w złożonych zapytaniach, ponieważ może pomóc w utrzymaniu bardziej zwięzłego i czytelnego kodu.

Poniżej znajdują się dwa przykłady; jeden bez aliasu tabeli, a drugi z aliasem tabeli.

Przykład bez aliasu tabeli

Oto podstawowy przykład zapytania, które łączy w lewo dwie tabele.

SELECT 
    PetTypes.PetType,
    COUNT(Pets.PetTypeId) AS Count
FROM Pets 
LEFT JOIN PetTypes 
ON Pets.PetTypeId = PetTypes.PetTypeId
GROUP BY PetTypes.PetType
ORDER BY Count DESC, PetTypes.PetType;

Wynik:

+-----------+---------+
| PetType   | Count   |
|-----------+---------|
| Dog       | 4       |
| Cat       | 3       |
| Bird      | 1       |
+-----------+---------+

Zwróć uwagę, że podajemy nazwę każdej tabeli tam, gdzie musimy się do niej odwoływać.

Przykład z aliasem tabeli

Oto ten sam przykład, z wyjątkiem aliasów tabel.

SELECT 
    pt.PetType,
    COUNT(p.PetTypeId) AS Count
FROM Pets AS p
LEFT JOIN PetTypes AS pt
ON p.PetTypeId = pt.PetTypeId
GROUP BY pt.PetType
ORDER BY Count DESC, pt.PetType;

Wynik:

+-----------+---------+
| PetType   | Count   |
|-----------+---------|
| Dog       | 4       |
| Cat       | 3       |
| Bird      | 1       |
+-----------+---------+

Podobnie jak w przypadku aliasów kolumn, AS słowo kluczowe jest opcjonalne w przypadku aliasów tabel. W Oracle AS słowo kluczowe nie jest nawet obsługiwane z aliasami tabel (chociaż jest obsługiwane z aliasami kolumn).

Dlatego moglibyśmy przepisać nasz przykład na następujący.

SELECT 
    pt.PetType,
    COUNT(p.PetTypeId) AS Count
FROM Pets p
LEFT JOIN PetTypes pt
ON p.PetTypeId = pt.PetTypeId
GROUP BY pt.PetType
ORDER BY Count DESC, pt.PetType;

Wynik:

+-----------+---------+
| PetType   | Count   |
|-----------+---------|
| Dog       | 4       |
| Cat       | 3       |
| Bird      | 1       |
+-----------+---------+

Tak czy inaczej, ten sam wynik.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Knee-Jerk PerfMon Liczniki:Oczekiwana długość życia strony

  2. Zrozumienie opróżnień bufora dziennika

  3. ScaleGrid uruchamia obsługę Google Cloud Platform (GCP) dla hostingu zarządzanej bazy danych

  4. Używanie folderu roboczego do bazy danych kontroli źródła

  5. Huawei GaussDB