Алиасы: AS для столбцов и таблиц

Зачем нужны алиасы? 🏷️

Алиасы (AS) — это временные имена для столбцов и таблиц в SQL. Они делают запросы чище, понятнее и удобнее:
- Столбцы: Улучшают читаемость результатов.
- Таблицы: Сокращают код, особенно при JOIN.
- Вычисления: Позволяют давать осмысленные названия сложным выражениям.

Без алиасов SQL-запросы быстро превращаются в хаос. Давай разберёмся, как их использовать правильно!


Алиасы для столбцов 📊

Часто названия столбцов в БД неочевидны (user_reg_datedate), или результат вычисления вообще не имеет имени. Алиас решает эту проблему:

-- Без алиаса
SELECT first_name, last_name, salary * 12 FROM employees;

-- С алиасом
SELECT 
    first_name AS "Имя",
    last_name AS "Фамилия",
    salary * 12 AS "Годовая зарплата"
FROM employees;

Что изменилось?
- Результат стал понятнее.
- Вложенные запросы и агрегатные функции тоже можно именовать:

SELECT AVG(salary) AS "Средняя зарплата" FROM employees;

💡 В PostgreSQL и MySQL можно опустить AS: first_name "Имя". Но явное указание делает код читаемее.


Алиасы для таблиц 🏗️

При работе с несколькими таблицами (особенно в JOIN) алиасы — must-have. Они:
- Сокращают запрос.
- Помогают избежать неоднозначности.

-- Без алиасов (мутно и длинно)
SELECT employees.first_name, departments.department_name 
FROM employees 
JOIN departments ON employees.department_id = departments.department_id;

-- С алиасами (чисто и компактно)
SELECT e.first_name, d.department_name 
FROM employees AS e
JOIN departments AS d ON e.department_id = d.department_id;

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

-- Правильно
SELECT e.first_name FROM employees e WHERE e.salary > 5000;

-- Ошибка (если таблица имеет алиас)
SELECT e.first_name FROM employees e WHERE employees.salary > 5000;

Алиасы в подзапросах и JOIN 🔄

Алиасы спасают, когда подзапросы и джойны усложняют логику:

-- Подзапрос с алиасом
SELECT sq.total
FROM (
    SELECT department_id, SUM(salary) AS total
    FROM employees
    GROUP BY department_id
) AS sq
WHERE sq.total > 100000;

-- Множественные JOIN с алиасами
SELECT 
    o.order_id,
    c.name AS customer,
    p.name AS product
FROM orders o
JOIN customers c ON o.customer_id = c.id
JOIN products p ON o.product_id = p.id;

Когда алиасы обязательны ⚠️

  1. Одинаковые имена столбцов в JOIN:
-- Без алиасов — ошибка!
SELECT id FROM table1 JOIN table2 ON table1.id = table2.id;

-- Решение
SELECT t1.id FROM table1 t1 JOIN table2 t2 ON t1.id = t2.id;
  1. Самоджойны (Self JOIN):
SELECT 
    e1.name AS employee,
    e2.name AS manager
FROM employees e1
JOIN employees e2 ON e1.manager_id = e2.id;

Продвинутые фишки 🎯

  • Алиасы для выражений:
SELECT 
    CONCAT(first_name, ' ', last_name) AS full_name,
    LENGTH(CONCAT(first_name, ' ', last_name)) AS name_length
FROM employees;
  • Переиспользование алиасов в SELECT:
    В некоторых СУБД (например, PostgreSQL) можно так:
SELECT 
    salary * 12 AS annual_salary,
    annual_salary * 0.1 AS tax -- Используем алиас внутри SELECT!
FROM employees;

Итоги

Алиасы столбцов: Делают результаты понятнее.
Алиасы таблиц: Укорачивают запросы и устраняют неоднозначность.
🔥 Где особенно полезны: JOIN, подзапросы, агрегатные функции.

Попробуй применить алиасы в своих запросах — они сэкономят время и нервы! 🚀

Скрыть рекламу навсегда

🎥 YouTube: программирование простым языком

Канал, где я спокойно и по шагам объясняю сложные темы — без заумных терминов и лишней теории.

Подходит, если раньше «не заходило», но хочется наконец понять.

▶️ Смотреть курсы на YouTube