У SQL псевдоніми — це тимчасові імена, надані стовпцям або таблицям, щоб полегшити читання та написання запитів. Вони не змінюють фактичні імена в базі даних і існують лише протягом цього запиту.
- Зробіть довгі або складні імена читабельними
- Спростіть об’єднання та підзапити
- Покращення чіткості в наборах результатів
- Уникайте конфліктів імен у багатотабличних запитах
У SQL є два типи псевдонімів:
- Псевдоніми стовпців: Тимчасові імена для стовпців у наборі результатів.
- Псевдоніми таблиць: Тимчасові імена для таблиць, які використовуються в запиті.
Приклад псевдонімів SQL
Ми будемо використовувати наступнеCustomerтаблицю для демонстрації всіх концепцій псевдонімів SQL. Ця таблиця містить інформацію про клієнта, таку як ім’я ідентифікатора, країна, вік і номер телефону.
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');
Вихід:
| CustomerID | Ім'я клієнта | Прізвище | Країна | Вік | Телефон |
|---|---|---|---|---|---|
| 1 | Сумнів | Тхакур | Індія | 23 | 9876543210 |
| 2 | Безпечний | Чопра | Австралія | 21 | 9876543211 |
| 3 | Навін | Туласі | Шрі-Ланка | 24 | 9876543212 |
| 4 | Адітья | Арпан | Австрія | 21 | 9876543213 |
| 5 | Нішант | Джайн | Іспанія | 22 | 9876543214 |
1. Псевдоніми стовпців
Псевдонім стовпця використовується для перейменування стовпця лише для результату запиту. Вони корисні, коли:
- Відображення зведених даних
- Зробіть результати більш читабельними
- Виконання розрахунків
Синтаксис:
SELECT column_name AS alias_name
FROM table_name;
У наступній таблиці детально пояснюються аргументи:
- column_name: стовпець, для якого ми збираємося створити псевдонім.
- псевдонім: тимчасове ім'я, яке ми збираємося призначити для стовпця або таблиці.
- AS: Це необов'язково. Якщо ви не вказали це, це не вплине на виконання запиту.
Приклад 1: псевдонім стовпця для перейменування стовпця
Щоб отримати CustomerID і перейменувати його як ідентифікатор у наборі результатів
SELECT CustomerID AS id
FROM Customer;
Вихід:
| id |
|---|
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
2. Псевдоніми таблиць
Псевдонім таблиці використовується, коли потрібно дати таблиці тимчасове ім’я на час виконання запиту. Псевдоніми таблиць особливо корисні в операціях JOIN для спрощення запитів, особливо коли на ту саму таблицю посилаються кілька разів (як у самоз’єднаннях).
Приклад 2: Псевдонім таблиці для об’єднання таблиць
Ми хочемо об’єднати таблицю Customer із самою собою, щоб знайти клієнтів із тієї самої країни та віком 21 рік. Ми використовуватимемо псевдоніми таблиць для кожного екземпляра таблиці Customer.
Запит:
SELECT c1.CustomerName c1.Country
FROM Customer AS c1 Customer AS c2
WHERE c1.Age = c2.Age AND c1.Country = c2.Country;
Вихід:
| Ім'я клієнта | Країна |
|---|---|
| Сумнів | Індія |
| Безпечний | Австралія |
| Навін | Шрі-Ланка |
| Адітья | Австрія |
| Нішант | Іспанія |
Тут c1 і c2 є псевдонімами для двох екземплярів таблиці Customer.
Об’єднання псевдонімів стовпців і таблиць
Ми хочемо отримати клієнтів віком від 21 року та перейменувати стовпці для кращої зрозумілості. Ми будемо використовувати псевдоніми таблиць і стовпців.
Запит:
хто такий фредді мерк'юрі
SELECT c.CustomerName AS Name c.Country AS Location
FROM Customer AS c
WHERE c.Age >= 21;
Вихід:
| Ім'я | Розташування |
|---|---|
| Сумнів | Індія |
| Безпечний | Австралія |
| Навін | Шрі-Ланка |
| Адітья | Австрія |
| Нішант | Іспанія |
Практичне використання псевдонімів SQL
- Краща читаність: Робить складні імена коротшими та легшими для розуміння.
- Спрощує запити: Зменшує повторення, особливо в об’єднаннях.
- Очистити вихід: Перейменовує стовпці для більш значущих результатів.
- Уникає конфліктів: Запобігає конфліктам імен у багатотабличних запитах.