Алиасы
Алиасы - временные имена, которые можно задать таблицам и колонкам, на момент выполнения запроса.
Алиасы позволяют задавать более читабельные и простые имена.
Чаще всего алиасы применяются когда:
- нужно упростить имя таблицы или колонки (вплоть до одной буквы).
- в запросе используются функции.
- имя колонки очень большое или плохо читаемое.
- несколько колонок скомбинированы вместе.
Создание алиасов для таблиц
Синтаксис создания алиаса для таблицы
1 |
SELECT column1, column2, ... , columnN FROM table_name AS alias; |
Для примера возьмем БД книжного магазина Bookstore и сделаем вывод статуса и даты заказов из таблиц customers и orders для клиента с именем Jane Doherty.
mysql> SELECT customers.first_name, customers.last_name, orders.status, orders.order_date
-> FROM customers, orders
-> WHERE customers.first_name='Jane'
-> AND customers.last_name='Doherty'
-> AND customers.id=orders.customer_id;
+------------+-----------+--------------------------------+---------------------+
| first_name | last_name | status | order_date |
+------------+-----------+--------------------------------+---------------------+
| Jane | Doherty | Завершен | 2019-01-11 20:59:40 |
| Jane | Doherty | Готов к отправке | 2018-12-24 04:28:54 |
+------------+-----------+--------------------------------+---------------------+
2 rows in set (0.00 sec)
Теперь с помощью алиасов упростим запрос и преобразуем его к следующему виду.
mysql> SELECT c.first_name, c.last_name, o.status, o.order_date
-> FROM customers AS c, orders AS o
-> WHERE c.first_name='Jane'
-> AND c.last_name='Doherty'
-> AND c.id=o.customer_id;
+------------+-----------+--------------------------------+---------------------+
| first_name | last_name | status | order_date |
+------------+-----------+--------------------------------+---------------------+
| Jane | Doherty | Завершен | 2019-01-11 20:59:40 |
| Jane | Doherty | Готов к отправке | 2018-12-24 04:28:54 |
+------------+-----------+--------------------------------+---------------------+
2 rows in set (0.00 sec)
Применение алиасов при работе только с одной таблицей, будет бессмысленно.
Создание алиасов для колонок
Синтаксис создания алиаса для колонок
1 |
SELECT column1 AS 'alias', column2 AS 'alias', ... , columnN AS 'alias' FROM table_name; |
Выведем несколько записей из таблицы books.
mysql> SELECT id, title, author, price
-> FROM books
-> LIMIT 5;
+----+--------------------------+-------------------+--------+
| id | title | author | price |
+----+--------------------------+-------------------+--------+
| 1 | Дубровский | Александр Пушкин | 230.00 |
| 2 | Нос | Николай Гоголь | 255.20 |
| 3 | Мастер и Маргарита | Михаил Булгаков | 263.00 |
| 4 | Мёртвые души | Николай Гоголь | 173.00 |
| 5 | Преступление и наказание | Фёдор Достоевский | 245.00 |
+----+--------------------------+-------------------+--------+
5 rows in set (0.00 sec)
Для простоты чтения создадим алиасы для всех колонок.
mysql> SELECT id AS 'Код', title AS 'Название книги', author AS 'Автор', price AS 'Цена'
-> FROM books
-> LIMIT 5;
+--------+---------------------------+--------------------+----------+
| Код | Название книги | Автор | Цена |
+--------+---------------------------+--------------------+----------+
| 1 | Дубровский | Александр Пушкин | 230.00 |
| 2 | Нос | Николай Гоголь | 255.20 |
| 3 | Мастер и Маргарита | Михаил Булгаков | 263.00 |
| 4 | Мёртвые души | Николай Гоголь | 173.00 |
| 5 | Преступление и наказание | Фёдор Достоевский | 245.00 |
+--------+---------------------------+--------------------+----------+
5 rows in set (0.01 sec)
Алиасы также удобно применять для обозначения результатов функций.
mysql> SELECT id AS 'Код', CONCAT(first_name, ' ', last_name) AS 'Клиент'
-> FROM customers
-> LIMIT 4;
+--------+---------------------------+
| Код | Клиент |
+--------+---------------------------+
| 1 | Олег Пальшин |
| 2 | Jane Doherty |
| 3 | Евгений Серов |
| 4 | София Молина |
+--------+---------------------------+
4 rows in set (0.00 sec)