W języku SQL aliasy są tymczasowymi nazwami nadawanymi kolumnom lub tabelom, aby ułatwić odczytywanie i zapisywanie zapytań. Nie zmieniają rzeczywistych nazw w bazie danych i istnieją tylko przez czas trwania tego zapytania.
- Spraw, aby długie lub złożone nazwy były czytelne
- Uprość łączenia i podzapytania
- Popraw przejrzystość zestawów wyników
- Unikaj konfliktów nazw w zapytaniach wielotabelowych
W SQL istnieją dwa typy aliasów:
- Aliasy kolumn: Tymczasowe nazwy kolumn w zestawie wyników.
- Aliasy tabeli: Tymczasowe nazwy tabel używanych w zapytaniu.
Przykład aliasów SQL
Będziemy korzystać z poniższychCustomertabela demonstrująca wszystkie koncepcje aliasów SQL. Ta tabela zawiera informacje o kliencie, takie jak imię i nazwisko, kraj, wiek i numer telefonu.
CREATE TABLE Customer (
CustomerID INT PRIMARY KEY
CustomerName VARCHAR(50)
LastName VARCHAR(50)
Country VARCHAR(50)
Age INT
Phone VARCHAR(15)
);
-- Inserting sample data into the Customer table
INSERT INTO Customer (CustomerID CustomerName LastName Country Age Phone)
VALUES
(1 'Shubham' 'Thakur' 'India' 23 '9876543210')
(2 'Aman' 'Chopra' 'Australia' 21 '9876543211')
(3 'Naveen' 'Tulasi' 'Sri Lanka' 24 '9876543212')
(4 'Aditya' 'Arpan' 'Austria' 21 '9876543213')
(5 'Nishant' 'Jain' 'Spain' 22 '9876543214');
Wyjście:
| ID klienta | Nazwa klienta | Nazwisko | Kraj | Wiek | Telefon |
|---|---|---|---|---|---|
| 1 | Wątpliwość | Thakur | Indie | 23 | 9876543210 |
| 2 | Bezpieczna | Chopra | Australia | 21 | 9876543211 |
| 3 | Naveen | Tulasi | Sri Lanka | 24 | 9876543212 |
| 4 | Aditya | Arpan | Austria | 21 | 9876543213 |
| 5 | Nishant | Jain | Hiszpania | 22 | 9876543214 |
1. Aliasy kolumn
Alias kolumny służy do zmiany nazwy kolumny tylko na potrzeby wyniku zapytania. Są przydatne, gdy:
- Wyświetlanie danych zbiorczych
- Zwiększenie czytelności wyników
- Wykonywanie obliczeń
Składnia:
SELECT column_name AS alias_name
FROM table_name;
Poniższa tabela szczegółowo wyjaśnia argumenty:
- nazwa_kolumny: kolumna, na której będziemy tworzyć alias.
- nazwa_aliasu: tymczasowa nazwa, którą nadamy kolumnie lub tabeli.
- JAK: Jest to opcjonalne. Jeśli nie został on określony, nie ma to wpływu na wykonanie zapytania.
Przykład 1: Alias kolumny do zmiany nazwy kolumny
Aby pobrać identyfikator klienta i zmienić jego nazwę na identyfikator w zestawie wyników
SELECT CustomerID AS id
FROM Customer;
Wyjście:
| id |
|---|
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
2. Aliasy tabel
Alias tabeli jest używany, gdy chcesz nadać tabeli tymczasową nazwę na czas trwania zapytania. Aliasy tabel są szczególnie przydatne w operacjach JOIN, aby uprościć zapytania, szczególnie gdy ta sama tabela odwołuje się wiele razy (jak w przypadku samozłączeń).
Przykład 2: Alias tabeli do łączenia tabel
Chcemy połączyć tabelę Klient ze sobą, aby znaleźć klientów mających ten sam kraj i mających 21 lat. Będziemy używać aliasów tabeli dla każdej instancji tabeli Klienci.
Zapytanie:
SELECT c1.CustomerName c1.Country
FROM Customer AS c1 Customer AS c2
WHERE c1.Age = c2.Age AND c1.Country = c2.Country;
Wyjście:
| Nazwa klienta | Kraj |
|---|---|
| Wątpliwość | Indie |
| Bezpieczna | Australia |
| Naveen | Sri Lanka |
| Aditya | Austria |
| Nishant | Hiszpania |
Tutaj c1 i c2 są aliasami dwóch wystąpień tabeli Customer.
Łączenie aliasów kolumn i tabel
Chcemy pozyskać klientów, którzy ukończyli 21. rok życia i zmienić nazwy kolumn dla lepszej przejrzystości. Będziemy używać zarówno aliasów tabel, jak i kolumn.
Zapytanie:
interfejs użytkownika C++
SELECT c.CustomerName AS Name c.Country AS Location
FROM Customer AS c
WHERE c.Age >= 21;
Wyjście:
| Nazwa | Lokalizacja |
|---|---|
| Wątpliwość | Indie |
| Bezpieczna | Australia |
| Naveen | Sri Lanka |
| Aditya | Austria |
| Nishant | Hiszpania |
Praktyczne zastosowania aliasów SQL
- Lepsza czytelność: Sprawia, że złożone nazwy są krótsze i łatwiejsze do zrozumienia.
- Upraszcza zapytania: Zmniejsza liczbę powtórzeń, zwłaszcza w połączeniach.
- Wyczyść dane wyjściowe: Zmienia nazwy kolumn, aby uzyskać bardziej znaczące wyniki.
- Unika konfliktów: Zapobiega konfliktom nazw w zapytaniach obejmujących wiele tabel.