Переименование полей и таблиц. Псевдонимы
Перед тем как связывать таблицы запросами, нужно освоить несколько новых инструментов. Начнём с переименования таблиц и полей.
Сначала покажем, зачем это нужно. В одном из прошлых уроков вы выгружали такую таблицу:
SQL
В запросе нет ошибок, но есть куда стремиться:
- Некоторые поля названы непонятно, например:
date_partиround. - Чтобы перечислить нужные поля после операторов
GROUP BYиORDER BY, приходится использовать очень громоздкие конструкции.
Чтобы решить эти проблемы, можно назначить полю или таблице псевдоним. Псевдоним — это временное название, которое присваивают в запросе таблице или полю. Иногда псевдонимы называют алиасами (от англ. alias, «псевдоним»).
Замена названия на псевдоним — это временное изменение. Название таблицы или поля не меняется в исходной базе данных.
Чтобы назначить псевдоним, после оператора
SELECT и ключевого слова указывают оператор AS и новое название поля. SQL
Это стандартный вариант в SQL, но в PostgreSQL можно задавать псевдонимы более простым способом — добавить название через пробел.
SQL
Теперь после операторов
GROUP BY и ORDER BY можно указать псевдонимы, а не прежнюю громоздкую конструкцию с EXTRACT.SQL
Назначить псевдоним можно и для таблицы. Как и в случае с полями, псевдоним указывают двумя способами. Например, стандартным способом с оператором
AS.SQL
Второй вариант — упрощённый способ в PostgreSQL.
SQL
Можно дополнительно указать, в какой таблице находится нужное поле. Сначала указывают псевдоним таблицы, а через точку — название поля.
SQL
Когда вы будете работать с несколькими таблицами в одном запросе, будет полезно указать вместе с полем и таблицу-источник. Но об этом мы ещё расскажем.
Теперь можно исправить запрос из начала урока и добавить псевдонимы:
year_of_purchase, min_cost, max_cost, total_revenue, total_purchases, average_receipt. SQL
Таблица стала понятнее, и запрос выглядит лучше — одни плюсы. Но нужно заметить, что обратиться к псевдониму можно не в любом месте запроса. Например, такой запрос выдаст ошибку:
SQL
Дело в том, что к псевдонимам нельзя обратиться в
WHERE или HAVING, потому что в SQL операторы выполняются не в том порядке, в котором их указывают в запросе. Сначала данные отбираются по условию, а только потом полям назначаются псевдонимы.Во многих СУБД нельзя обращаться к псевдонимам и в
GROUP BY, но в PostgreSQL можно. Подробнее о порядке выполнения запросов мы расскажем в одном из уроков темы.