В языке SQL (Structured Query Language) присутствует довольно интересная функция под названием «псевдонимы» (aliases). В данной статье мы рассмотрим, что такое псевдонимы, когда их можно использовать а также выделим преимущества псевдонимов при выполнении SQL запросов.
Псевдоним (alias) — функция в языке SQL, предназначенная для временного присвоения новых имен для таблиц и столбцов в базе данных. Использовать псевдонимы можно только во время выполнения конкретного запроса при помощи оператора SELECT. Для использования псевдонимов обычно используется оператор AS, однако в некоторых СУБД ключевое слово AS можно не использовать.
Операция по переименованию является временным изменением и фактическое имя таблицы/столбца не изменяется в структуре базе данных.
Псевдонимы и в частности оператор AS поддерживаются во всех популярных СУБД включая MySQL, PostgreSQL, Oracle Database, Microsoft SQL Server, IBM Db2.
Синтаксис по использованию псевдонимов выглядит следующим образом.
Для таблицы:
SELECT <имя_столбца>
FROM <имя_таблицы> AS <псевдоним_таблицы>;
Для столбца:
SELECT <имя_столбца> AS <псевдоним_столбца>
FROM <имя_таблицы>;
Для нескольких столбцов:
SELECT <имя_столбца> AS <псевдоним_столбца>, <имя_столбца> AS <псевдоним_столбца>
FROM <имя_таблицы>;
Отдельно стоит отметить ряд правил, которые применяются к псевдонимам.
В именах псевдонимов можно использовать только английские буквы, цифры а также знак подчеркивания. Если же в названии псевдонима необходимо использовать русские буквы, то их необходимо оборачивать в двойные кавычки. Например:
SELECT <имя_столбца>
FROM <имя_таблицы> AS "Псевдоним 1" ;
При использовании русских букв в именах псевдонимов накладывается еще одно ограничение: в этом случае имена псевдонимов могут состоять только из 15 символов.
Рассмотрим использование псевдонимов на практических примерах. Все примеры выполнялись на СУБД PostgreSQL 15 версии.
В качестве примера возьмем базу данных с именем orders
. В базе данных присутствует таблица list_information, в которой содержится информация о покупателях в интернет-магазине. В таблице присутствуют следующие столбцы:
user_identification_number customer_name customer_address customer_city customer_country postal_code
Создадим структуру базы данных. Команды ниже выполнялись при помощи консольной утилиты psql
, которая поставляется в комплекте с PostgreSQL.
orders
:CREATE DATABASE orders;
\c orders
list_information
и необходимые столбцы:CREATE TABLE list_information (
user_identification_number INT PRIMARY KEY,
customer_name VARCHAR(100) NOT NULL,
customer_address VARCHAR(255) NOT NULL,
customer_city VARCHAR(100) NOT NULL,
customer_country VARCHAR(100) NOT NULL,
postal_code INT NOT NULL
);
Так как имя list_information
не является понятным и не отражает суть того, какие данные хранятся в таблице, воспользуемся псевдонимом на время выполнения запроса на выборку данных:
SELECT * FROM list_information AS customer_information;
Где customer_information
— временное название, присвоенное таблице list_information
.
Как уже было упомянуто ранее, в некоторых СУБД можно не использовать ключевое слово AS
. В таком случае псевдоним указывается сразу после имени таблицы:
SELECT * FROM list_information customer_information;
Данное правило действует и для столбцов.
Теперь воспользуемся псевдонимом для столбца. Принцип действия один и тот же, только оператор AS
указываем после конкретного столбца таблицы. Например, в таблице list_information
присутствует столбец с именем user_identification_number
, в котором хранятся уникальные номера (ID
) клиентов. С целью предоставления отчетности или для укорочения информации можно использовать удобное имя для столбца, например, заменив его на user_ID
:
SELECT user_identification_number AS user_ID FROM list_information;
При выполнении запроса выше, в консоли SQL в качестве имени столбца будет отображаться ранее заданный псевдоним user_ID
, при этом оригинальное имя столбца (user_identification_number
) на уровне базы данных изменено не будет — псевдоним используется только временно и только на уровне выполнения запроса.
Также псевдонимы можно использовать для нескольких столбцов сразу:
SELECT user_identification_number AS user_ID, customer_city AS city FROM list_information;
Если в имени псевдонима будет содержаться пробел, то необходимо использовать двойные кавычки. В примере ниже будет создан псевдоним для столбца customer_city
с именем person city
при помощи двойных кавычек:
SELECT customer_city AS "person city" FROM list_information;
Также при помощи псевдонима можно объединить несколько столбцов таблицы. В СУБД PostgreSQL для этого используется оператор CONCAT
для соединения столбцов таблицы:
SELECT customer_name, CONCAT(customer_address, customer_city, customer_country, postal_code) AS Address
FROM list_information;
В запросе выше будут выведены 2 столбца: customer_name
и Address
. Причем в столбце Address
(который является псевдонимом) будет отображена информация из 4 столбцов сразу: customer_address
, customer_city
, customer_country
и postal_code
. Тем самым произошло объединение столбцов. Это удобно при составлении отчетов.
Несмотря на довольную простою функцию, которую выполняют псевдонимы, их можно использовать в следующих ситуациях:
При работе с несколькими таблицами.
При использовании функций.
Если имена столбцов не отражают текущее содержимое и/или состоят из большого количества символов. Полезно при создании отчетов.
При объединении двух или более столбцов.
В данной статье мы рассмотрели, что такое псевдоним в языке SQL, а также разобрали практические примеры использования псевдонимов. Несмотря на то, что псевдонимы легко использовать, они могут оказаться полезными в работе.