Aliases

Aliases (псевдоніми) — це тимчасові імена, які ви призначаєте таблицям або стовпцям в запитах для зручності та скорочення написання SQL-запитів. Вони не змінюють реальні імена таблиць або стовпців у базі даних, а тільки використовуються під час виконання запиту.
Є два основних типи alias у MySQL:
1. Alias для таблиць (Table Alias)
2. Alias для стовпців (Column Alias)

Alias для таблиць

Це псевдоніми для таблиць, які зручно використовувати, коли таблиць в запиті багато або коли їх імена дуже довгі. Псевдонім можна задати після імені таблиці.
Приклад:
SELECT u.name, o.order_date
FROM users AS u
JOIN orders AS o ON u.id = o.user_id;
Тут:    
• users AS u — це псевдонім для таблиці users (тепер ви можете використовувати u замість повного імені таблиці).    
• orders AS o — псевдонім для таблиці orders (тут замість orders використовується o).

Alias для стовпців

Це псевдоніми для стовпців, що дозволяють дати зрозуміліші або коротші імена для результатів запиту.
Приклад:
SELECT first_name AS “First Name”, last_name AS “Last Name”
FROM employees;
Тут:    
• first_name AS “First Name” — псевдонім для стовпця first_name, і результат буде виводитись як “First Name”.    
• last_name AS “Last Name” — псевдонім для стовпця last_name, і результат буде виводитись як “Last Name”.

Переваги

Зручність: псевдоніми дозволяють значно скоротити запит і зробити його більш зрозумілим, особливо при використанні складних SQL-запитів або при об’єднанні кількох таблиць.
Читабельність: псевдоніми допомагають уникнути повторення довгих імен таблиць або стовпців.
Естетика результатів: при використанні псевдонімів для стовпців, можна надавати результатам більш зрозумілі або “людські” назви, що полегшує читання виводу.

Приклад

-- Створення бази даних
CREATE DATABASE alias_practice;
USE alias_practice;

-- Створення таблиці
CREATE TABLE employees (
    id INT AUTO_INCREMENT PRIMARY KEY,
    first_name VARCHAR(50),
    last_name VARCHAR(50),
    department VARCHAR(50),
    salary DECIMAL(10, 2)
);

-- Заповнення таблиці даними
INSERT INTO employees (first_name, last_name, department, salary)
VALUES
    ('John', 'Wilson', 'Sales', 5000),
    ('Jane', 'Jackson', 'Marketing', 5500),
    ('Wesley', 'Johnson', 'Sales', 4800),
    ('Angie', 'Williams', 'IT', 6000),
    ('Fred', 'Solverson', 'IT', 6200),
    ('Judie', 'Davis', 'HR', 4500),
    ('Jessie', 'Miller', 'Marketing', 5700);

-- У цьому запиті ми вибираємо ім'я та прізвище співробітників з відділу "Sales", 
--де заробітна плата більша за 4800, і використовуємо псевдоніми для стовпців і таблиці.
SELECT 
    e.first_name AS "First Name", 
    e.last_name AS "Last Name", 
    e.salary AS "Salary"
FROM employees AS e
WHERE e.department = 'Sales' AND e.salary > 4800;

-- У цьому запиті ми вибираємо співробітників з відділів "Sales", "Marketing" та "IT", 
-- використовуючи оператор IN для фільтрації за кількома значеннями.
SELECT 
    e.first_name AS "First Name", 
    e.last_name AS "Last Name", 
    e.department AS "Department"
FROM employees AS e
WHERE e.department IN ('Sales', 'Marketing', 'IT');

-- У цьому запиті ми вибираємо співробітників, чиє ім'я починається на літеру "J", 
-- використовуючи оператор LIKE для пошуку за шаблоном.
SELECT 
    e.first_name AS "First Name", 
    e.last_name AS "Last Name", 
    e.salary AS "Salary"
FROM employees AS e
WHERE e.first_name LIKE 'J%';

Для додаткової візуалізації є відео.

Оператор BETWEEN

Оператор BETWEEN — це логічний оператор порівняння, який використовується в SQL для перевірки, чи належить певне значення до заданого діапазону. Його часто застосовують у частині WHERE запиту для фільтрації рядків за числовими, текстовими або часовими межами.
SELECT column_name
FROM table_name
WHERE column_name BETWEEN value1 AND value2;    
• column_name — стовпець, значення якого порівнюється;    
• value1 — нижня межа (включно);    
• value2 — верхня межа (включно).
У MySQL BETWEEN включає обидві межі:
тобто умова BETWEEN 10 AND 20 еквівалентна >= 10 AND <= 20.

Приклад

-- Створення бази даних
CREATE DATABASE between_practice;
USE between_practice;
-- Створення таблиці
CREATE TABLE products (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(50) NOT NULL,
    category VARCHAR(30),
    price DECIMAL(10,2),
    created_at DATE
);
-- Наповнення таблиці даними
INSERT INTO products (name, category, price, created_at)
VALUES
('iPhone 15', 'Electronics', 1200.00, '2025-01-10'),
('MacBook Air', 'Electronics', 1800.00, '2025-02-15'),
('AirPods Pro', 'Electronics', 350.00, '2025-03-05'),
('Galaxy S24', 'Electronics', 950.00, '2025-01-20'),
('Kindle Paperwhite', 'Gadgets', 180.00, '2024-12-10'),
('Sony WH-1000XM5', 'Audio', 600.00, '2025-02-02'),
('Dell XPS 13', 'Computers', 1400.00, '2025-03-20'),
('Asus ZenBook', 'Computers', 1100.00, '2025-04-12'),
('Google Pixel 8', 'Electronics', 800.00, '2025-01-25'),
('HP Pavilion', 'Computers', 700.00, '2024-11-30');

-- Використання BETWEEN для числових значень
SELECT name, price
FROM products
WHERE price BETWEEN 700 AND 1200;
-- Отримаємо всі товари, де 700 ≤ price ≤ 1200.

-- Використання BETWEEN для дат
SELECT name, created_at
FROM products
WHERE created_at BETWEEN '2025-01-01' AND '2025-02-28'
ORDER BY created_at;
-- Тут ми бачимо, що BETWEEN коректно обробляє діапазон дат.

-- Використання BETWEEN для текстових значень
SELECT name
FROM products
WHERE name BETWEEN 'G' AND 'M'
ORDER BY name;
-- Порівняння виконується за алфавітним порядком — все, що починається між літерами “G” і “M”.

-- Використання NOT BETWEEN
SELECT name, price
FROM products
WHERE price NOT BETWEEN 500 AND 1000
ORDER BY price;
-- Отримаємо все, що менше 500 або більше 1000.

Для додаткової візуалізації є відео.

Оператор IN

Оператор IN в MySQL використовується для перевірки, чи міститься значення у списку значень. Це спрощує написання SQL-запитів, коли необхідно перевірити кілька значень одночасно.
Синтаксис
SELECT * FROM table_name
WHERE column_name IN (value1, value2, value3, …);    
• column_name — це колонка таблиці, значення якої потрібно порівняти з переліком.    
• (value1, value2, value3, …) — список значень, які ми хочемо порівняти з полем column_name.

Перевірка на кілька конкретних значень

Уявімо, що у нас є таблиця employees, і вам потрібно знайти всіх працівників, чия посада — “Manager”, “Developer” або “Designer”. Запит виглядатиме так:
SELECT * FROM employees
WHERE position IN (‘Manager’, ‘Developer’, ‘Designer’);
Цей запит поверне всі записи з таблиці employees, де значення в колонці position є одним із заданих (в даному випадку, “Manager”, “Developer” або “Designer”).

Перевірка на числові значення

Якщо нам потрібно перевірити кілька числових значень у колонці, можна використовувати оператор IN наступним чином:
SELECT * FROM orders
WHERE order_id IN (1, 3, 5, 7);
Цей запит вибере всі замовлення, у яких значення order_id дорівнює 1, 3, 5 або 7.

Перевірка на дати

Оператор IN можна також використовувати для перевірки на дату або час. Приклад:
SELECT * FROM sales
WHERE sale_date IN (‘2025-01-01’, ‘2025-01-15’, ‘2025-02-01’);
Тут ми вибираємо всі продажі, які відбулися 1 січня 2025 року, 15 січня 2025 року або 1 лютого 2025 року.

Переваги оператора IN

Простота синтаксису: Замінює кілька умов OR в одному запиті, що робить його більш читабельним.
Зручність: Дозволяє легко працювати з кількома значеннями без повторення умови.
Гнучкість: Можна використовувати для різних типів даних — чисел, рядків, дат тощо.

Приклад

-- Створимо базу даних
CREATE DATABASE in_operator_practice;
USE in_operator_practice;
-- Створимо таблицю employees
CREATE TABLE employees (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(50),
    position VARCHAR(50),
    city VARCHAR(50),
    salary DECIMAL(10,2)
);

-- Заповнимо таблицю даними
INSERT INTO employees (name, position, city, salary) VALUES
('Іван Шевчук', 'Developer', 'Київ', 45000.00),
('Марія Іваненко', 'Manager', 'Львів', 60000.00),
('Олег Коваленко', 'Designer', 'Одеса', 40000.00),
('Анна Шевченко', 'Developer', 'Київ', 47000.00),
('Дмитро Мельник', 'HR', 'Харків', 35000.00),
('Оксана Литвин', 'QA Engineer', 'Львів', 38000.00),
('Сергій Павленко', 'Manager', 'Київ', 62000.00),
('Катерина Романюк', 'Designer', 'Дніпро', 41000.00);

-- Знайти працівників певних посад
-- Хочемо отримати всіх Developer, Designer і QA Engineer.

SELECT name, position, salary
FROM employees
WHERE position IN ('Developer', 'Designer', 'QA Engineer');

-- Результат: будуть вибрані всі працівники, чия посада відповідає одному з цих трьох варіантів.

-- Знайти працівників із певних міст
-- Потрібно знайти всіх, хто працює у Києві або Львові.

SELECT name, city, position
FROM employees
WHERE city IN ('Київ', 'Львів');

-- Результат: поверне працівників із Києва та Львова.

--  Використання IN із числовими значеннями
-- Хочемо переглянути інформацію про конкретних працівників за їхніми id:

SELECT * 
FROM employees
WHERE id IN (3, 5, 7);

-- Результат: покаже 3-го, 5-го і 7-го працівників у таблиці.

Для додаткової візуалізації є відео.