🎯 Осталось несколько дней до конца месяца Поддержите SQLTest.online и помогите нам сохранить практику SQL бесплатной для всех. Пожертвовать сегодня →
SQL код скопирован в буфер обмена

Псевдонимы в SQL: переименование столбцов с помощью AS

Урок 2.5 · Время чтения: ~5 мин · Задачи для практики ↓

Псевдоним столбца в SQL - это временное имя, которое вы даёте столбцу в результате запроса с помощью ключевого слова AS. В этом уроке вы изучите синтаксис псевдонимов, научитесь записывать псевдонимы с пробелами, узнаете, зачем они нужны вычисляемым столбцам и в каких частях запроса их можно использовать.

В предыдущих уроках вы выбирали столбцы ровно под теми именами, под которыми они хранятся в таблице. Имена столбцов часто технические, например rental_rate или replacement_cost, а у вычисляемого значения вроде length / 60 нормального имени нет вовсе. Псевдонимы позволяют управлять заголовками результата.

Псевдоним столбца в SQL: ключевое слово AS переименовывает столбец только в результате, псевдонимы с пробелами в кавычках и псевдоним для вычисляемого столбца

Что такое псевдоним столбца?

Псевдоним столбца задаёт временное имя столбцу в результате запроса SELECT. Сам столбец в таблице не меняется: псевдоним существует только в выводе этого запроса.

Базовый синтаксис

SELECT column_name AS alias_name
FROM table_name;

Ключевое слово AS необязательно, поэтому запись SELECT column_name alias_name тоже работает. С явным AS запрос читается легче: псевдоним не выглядит как второй столбец.


Переименование столбца

SELECT title AS film_title,
       rental_rate AS price
FROM film;

Результат: все фильмы с двумя столбцами film_title и price вместо title и rental_rate.


Псевдонимы с пробелами

Если псевдоним содержит пробелы или специальные символы, заключите его в двойные кавычки:

SELECT first_name AS "Given Name",
       last_name AS "Surname"
FROM actor;

Результат: список актёров с заголовками столбцов «Given Name» и «Surname».

Двойные кавычки - это стандарт SQL. MySQL и MariaDB также принимают обратные апострофы (`Given Name`), а SQL Server - квадратные скобки ([Given Name]). На практике короткие имена без пробелов, например given_name, удобнее использовать дальше в запросе.


Псевдонимы для вычисляемых столбцов

Когда столбец вычисляется из выражения, база данных формирует заголовок из текста выражения, например length / 60. Псевдоним даёт ему нормальное имя:

SELECT title,
       length AS length_minutes,
       length / 60 AS length_hours,
       rental_rate * rental_duration AS full_rental_cost
FROM film;

Результат: каждый фильм с длительностью в минутах и часах и стоимостью аренды на весь срок.

Вычисляемые столбцы - самая частая причина использовать псевдонимы: без них результат трудно читать, а приложения, которые читают результат по именам столбцов, не могут найти значение.


Где можно использовать псевдоним

Псевдоним создаётся в списке SELECT, поэтому он доступен только в тех частях запроса, которые обрабатываются после SELECT:

ПредложениеМожно использовать псевдоним?
ORDER BYДа, во всех основных СУБД
WHEREНет: WHERE обрабатывается до SELECT
GROUP BY, HAVINGЗависит от СУБД (MySQL и PostgreSQL разрешают в GROUP BY)
SELECT title, rental_rate * rental_duration AS full_rental_cost
FROM film
ORDER BY full_rental_cost DESC;

Результат: фильмы, отсортированные от самой дорогой полной аренды к самой дешёвой.

Если запрос должен работать в нескольких СУБД, в WHERE, GROUP BY и HAVING повторяйте выражение вместо псевдонима. Подробнее о порядке обработки - в уроке 2.7.


Ключевые выводы:

  • Псевдоним столбца - временное имя столбца в результате запроса; таблица не меняется.
  • Записывайте псевдонимы с AS: SELECT title AS film_title. Ключевое слово необязательно, но улучшает читаемость.
  • Псевдонимы с пробелами заключайте в двойные кавычки: AS "Given Name".
  • Давайте псевдоним каждому вычисляемому столбцу.
  • Псевдоним можно использовать в ORDER BY, но не в WHERE.

Часто задаваемые вопросы

Обязательно ли ключевое слово AS для псевдонима в SQL?

Нет. SELECT title film_title работает так же, как SELECT title AS film_title. Использовать AS рекомендуется: так видно, где заканчивается столбец и начинается псевдоним.

Почему нельзя использовать псевдоним столбца в WHERE?

WHERE обрабатывается до SELECT, поэтому в момент фильтрации строк псевдонима ещё не существует. Повторите выражение в WHERE или используйте псевдоним в ORDER BY, который обрабатывается после SELECT.

Переименовывает ли псевдоним столбец в таблице?

Нет. Псевдоним влияет только на результат текущего запроса. Чтобы переименовать столбец в самой таблице, используйте ALTER TABLE ... RENAME COLUMN.

Попробуйте решить следующие задачи, чтобы закрепить материал этого урока.

  1. Что такое псевдоним в SQL?
  2. Псевдонимы, которые ломают запрос