AS. Создание алиасов для таблиц и колонок в MySQL

Алиасы

Алиасы - временные имена, которые можно задать таблицам и колонкам, на момент выполнения запроса.

Алиасы позволяют задавать более читабельные и простые имена.

Чаще всего алиасы применяются когда:

  • нужно упростить имя таблицы или колонки (вплоть до одной буквы).
  • в запросе используются функции.
  • имя колонки очень большое или плохо читаемое.
  • несколько колонок скомбинированы вместе.

Создание алиасов для таблиц

Синтаксис создания алиаса для таблицы

Для примера возьмем БД книжного магазина 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)

Применение алиасов при работе только с одной таблицей, будет бессмысленно.

Создание алиасов для колонок

Синтаксис создания алиаса для колонок

Выведем несколько записей из таблицы 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)