Курс аналітики даних · Урок 1 з 9 · 15 липня 2026

Що таке SQL: основи для початківців з прикладами

Ви відкриваєте вакансію дата-аналітика — і в кожній другій бачите вимогу «SQL». Ви хочете витягнути дані про продажі з бази компанії — і знову впираєтесь у SQL. Без цієї мови робота з даними зводиться до нескінченних Excel-файлів, які хтось має вам вивантажити.

SQL·9 хв читання
Що таке SQL: основи для початківців з прикладами

Добра новина: SQL — одна з найпростіших мов для старту. Базові запити ви навчитеся писати вже сьогодні, за один урок. Це урок 1 безкоштовного курсу аналітики даних від SEOWORK: далі на вас чекають JOIN, групування, віконні функції та Power BI.

У цьому уроці ви дізнаєтеся, що таке база даних і СУБД, установите MySQL і напишете перші запити: SELECT, WHERE з умовами AND/OR та IN/NOT IN, сортування ORDER BY і обмеження LIMIT. Усі приклади — на демо-базі інтернет-магазину, яку ми використовуватимемо впродовж усього курсу. Її можна завантажити одним файлом і підняти локально: демо-база (SQL-дамп для MySQL 8.0+) — чотири таблиці customers, products, orders, order_items з тестовими даними.

Що таке SQL простими словами

SQL (Structured Query Language) — це мова структурованих запитів, якою ви «спілкуєтеся» з базами даних: просите показати, додати, змінити або видалити дані. Ви описуєте, що хочете отримати, а система сама вирішує, як це зробити.

Порівняйте з людською мовою. Фраза «покажи мені всі замовлення з Києва за суму понад 1000 грн» у SQL виглядає майже так само — лише англійськими ключовими словами. Саме тому SQL вважають найдружнішою до початківців мовою у сфері даних.

SQL — стандарт, який підтримують усі популярні реляційні бази: MySQL, PostgreSQL, SQL Server, Oracle, SQLite. Синтаксис базових запитів у них практично однаковий, тож вивчивши SQL один раз, ви зможете працювати з будь-якою з цих систем.

База даних і СУБД: у чому різниця

База даних (БД) — це впорядковане сховище інформації. У реляційній БД дані лежать у таблицях, схожих на аркуші Excel: рядки — це записи (наприклад, окремі замовлення), стовпці — атрибути (дата, сума, статус).

СУБД (система управління базами даних) — це програма, яка керує цим сховищем: зберігає файли на диску, виконує ваші SQL-запити, розмежовує доступ і стежить за цілісністю даних. MySQL, PostgreSQL і SQL Server — це саме СУБД.

Проста аналогія: база даних — це бібліотека з книжками, а СУБД — бібліотекар, який за вашим запитом знаходить потрібну книжку, ставить нові на полиці та не пускає сторонніх у сховище.

Установка MySQL: що потрібно для практики

Для курсу ми використовуємо MySQL — безкоштовну СУБД з відкритим кодом, одну з найпоширеніших у вебі. Установити її можна за 10–15 хвилин:

  1. Завантажте MySQL Community Server з офіційного сайту dev.mysql.com (розділ Downloads) для Windows, macOS або Linux.
  2. Під час установки задайте пароль користувача root — і обов’язково запишіть його.
  3. Установіть MySQL Workbench — графічний клієнт, у якому зручно писати запити й переглядати таблиці. На Windows він входить до пакета MySQL Installer.
  4. Відкрийте Workbench, підключіться до локального сервера (localhost, порт 3306) — і можна працювати.

Не хочете нічого встановлювати? Скористайтеся онлайн-пісочницями на кшталт DB Fiddle або sqliteonline.com: обираєте діалект MySQL у браузері й одразу виконуєте запити з цього уроку.

Демо-база «магазин»: таблиці, з якими працюємо

Усі приклади курсу побудовані на базі даних невеликого інтернет-магазину з чотирьох таблиць:

ТаблицяСтовпціЩо зберігає
customersid, name, city, created_atКлієнти: ім’я, місто, дата реєстрації
ordersid, customer_id, order_date, amount, statusЗамовлення: хто, коли, на яку суму, статус
productsid, name, category, priceТовари: назва, категорія, ціна
order_itemsorder_id, product_id, qtyПозиції замовлення: який товар і в якій кількості

Зверніть увагу на стовпець customer_id у таблиці orders: він посилається на id з таблиці customers. Так таблиці «знають» одна про одну — детально ці зв’язки ми розберемо в уроці про JOIN.

Оператор SELECT: ваш перший SQL-запит

Оператор SELECT — головна команда аналітика: вона читає дані з таблиці. Мінімальний запит складається з двох частин: що вибрати (список стовпців) і звідки (FROM + назва таблиці).

-- Усі стовпці й усі рядки таблиці замовлень
SELECT *
FROM orders;

Зірочка * означає «всі стовпці». На практиці краще перелічувати лише потрібні — так запит працює швидше, а результат легше читати:

-- Тільки дата й сума кожного замовлення
SELECT order_date, amount
FROM orders;

Стовпцям можна давати зрозумілі імена через ключове слово AS (аліас):

SELECT order_date AS data_zamovlennia,
       amount     AS suma
FROM orders;

Регістр ключових слів значення не має: select і SELECT працюють однаково. Але за традицією ключові слова пишуть ВЕЛИКИМИ літерами — так запит легше читати. Крапка з комою в кінці завершує запит.

WHERE: фільтруємо рядки за умовою

SELECT без фільтра повертає всі рядки таблиці. Щоб відібрати лише потрібні, додайте умову WHERE:

-- Замовлення на суму понад 1000
SELECT id, order_date, amount
FROM orders
WHERE amount > 1000;

В умовах працюють звичні оператори порівняння:

ОператорЗначенняПриклад
=дорівнюєstatus = 'paid'
<> або !=не дорівнюєcity <> 'Київ'
> / <більше / меншеamount > 1000
>= / <=більше-дорівнює / менше-дорівнюєprice <= 500
BETWEENу діапазоні (включно)amount BETWEEN 500 AND 1000
LIKEзбіг за шаблономname LIKE 'А%'

Важлива деталь: текстові значення й дати беруть в одинарні лапки ('paid', '2024-05-01'), а числа пишуть без лапок.

AND і OR: комбінуємо умови

Кілька умов об’єднують логічними операторами. AND вимагає, щоб виконувались обидві умови, OR — хоча б одна:

-- Оплачені замовлення на суму від 1000
SELECT id, order_date, amount, status
FROM orders
WHERE status = 'paid' AND amount >= 1000;

-- Клієнти з Києва або Львова
SELECT name, city
FROM customers
WHERE city = 'Київ' OR city = 'Львів';

Коли змішуєте AND і OR в одному запиті, ставте дужки: AND має вищий пріоритет, і без дужок логіка може відпрацювати не так, як ви задумали:

-- Оплачені або доставлені замовлення від 1000 грн
SELECT id, amount, status
FROM orders
WHERE (status = 'paid' OR status = 'delivered')
  AND amount >= 1000;

IN і NOT IN: перевірка за списком

Довгий ланцюжок OR за одним стовпцем зручно замінити оператором IN — «значення входить у список»:

-- Те саме, що city = 'Київ' OR city = 'Львів' OR city = 'Одеса'
SELECT name, city
FROM customers
WHERE city IN ('Київ', 'Львів', 'Одеса');

NOT IN працює навпаки — відкидає рядки зі значеннями зі списку:

-- Товари з усіх категорій, крім аксесуарів і послуг
SELECT name, category, price
FROM products
WHERE category NOT IN ('Аксесуари', 'Послуги');

ORDER BY: сортуємо результат

Без сортування СУБД повертає рядки в довільному порядку. ORDER BY упорядковує результат за одним або кількома стовпцями. За замовчуванням — за зростанням (ASC), для спадання додайте DESC:

-- Найдорожчі замовлення згори
SELECT id, order_date, amount
FROM orders
ORDER BY amount DESC;

Можна сортувати за кількома стовпцями одночасно — спочатку за першим, а в межах однакових значень за другим:

-- Товари за категорією (А→Я), усередині категорії — від дорогих до дешевих
SELECT name, category, price
FROM products
ORDER BY category ASC, price DESC;

LIMIT: обмежуємо кількість рядків

LIMIT каже СУБД повернути лише перші N рядків результату. У парі з ORDER BY це класичний спосіб знайти «топ» будь-чого:

-- Топ-5 найбільших замовлень
SELECT id, customer_id, amount
FROM orders
ORDER BY amount DESC
LIMIT 5;

У формі LIMIT зсув, кількість перше число — це зсув (скільки рядків пропустити), а друге — скільки рядків повернути. Той самий запис можна зробити явним: LIMIT кількість OFFSET зсув. Наприклад, LIMIT 10, 20 (пропустити 10, взяти 20) рівнозначне LIMIT 20 OFFSET 10. Так роблять посторінковий вивід. І практична порада: коли досліджуєте незнайому велику таблицю, завжди починайте з LIMIT 10, щоб не тягнути мільйони рядків даремно.

Підсумковий запит уроку — все разом:

-- Топ-10 оплачених або доставлених замовлень 2024 року на суму від 500
SELECT id, order_date, amount, status
FROM orders
WHERE status IN ('paid', 'delivered')
  AND amount >= 500
  AND order_date BETWEEN '2024-01-01' AND '2024-12-31'
ORDER BY amount DESC
LIMIT 10;

Зверніть увагу на порядок частин запиту: SELECT → FROM → WHERE → ORDER BY → LIMIT. Він фіксований — переставляти блоки місцями не можна.

Поширені помилки початківців

  • Текст без лапок. WHERE status = paid викличе помилку — MySQL шукатиме стовпець paid. Правильно: status = 'paid'.
  • Кома перед FROM. Зайва кома після останнього стовпця (SELECT id, amount, FROM orders) ламає запит. Перевіряйте кінець списку стовпців.
  • AND та OR без дужок. Через вищий пріоритет AND умова WHERE city = 'Київ' OR city = 'Львів' AND amount > 1000 відфільтрує зовсім не те, що ви очікуєте. Групуйте OR у дужки.
  • SELECT * на великих таблицях. Запит без списку стовпців і без LIMIT на таблиці з мільйонами рядків надовго «підвісить» клієнт. Вибирайте лише потрібні стовпці.
  • Порівняння з NULL через «=». Порожні значення перевіряють конструкцією IS NULL / IS NOT NULL, а не = NULL — інакше умова ніколи не спрацює. Пам’ятайте також, що NOT IN зі списком, у якому трапився NULL, не поверне жодного рядка.

FAQ: часті питання про SQL

Чи важко вивчити SQL з нуля?

Ні. Базові запити — SELECT, WHERE, ORDER BY — реально освоїти за кілька вечорів практики. Синтаксис близький до звичайної англійської, а результат кожного запиту видно одразу. На впевнений робочий рівень (JOIN, групування, підзапити) зазвичай потрібно кілька тижнів регулярних вправ.

SQL — це мова програмування?

SQL — декларативна мова запитів: ви описуєте бажаний результат, а не покрокові інструкції, як у Python чи JavaScript. Циклів і класичних змінних у базовому SQL немає. Утім, у вакансіях і резюме SQL цілком коректно вказувати поряд з мовами програмування — це окрема повноцінна навичка.

Чим MySQL відрізняється від SQL?

SQL — це мова запитів, стандарт. MySQL — конкретна СУБД, тобто програма, яка цю мову розуміє й виконує. Аналогічно PostgreSQL, SQL Server і Oracle — інші СУБД зі своїми діалектами SQL. Базові конструкції з цього уроку працюють у всіх них однаково.

Чи потрібен SQL, якщо я планую працювати в Power BI?

Так, і дуже. Power BI найчастіше підключається саме до реляційних баз даних, і вміння написати запит, який віддасть лише потрібні дані, робить звіти швидшими й простішими. У другій половині нашого курсу ви побачите зв’язку SQL + Power BI на практиці.

Що далі

Ви вже вмієте головне: діставати дані з таблиці, фільтрувати їх за умовами, сортувати й обмежувати вибірку. Потренуйтеся на демо-базі — складіть власні запити до таблиць customers і products, комбінуючи WHERE, IN, ORDER BY і LIMIT.

Наступний крок — навчитися поєднувати кілька таблиць в одному запиті, адже відповіді на реальні бізнес-питання майже завжди «розкидані» по різних таблицях. Про це — урок 2: SQL JOIN — як поєднати таблиці (INNER, LEFT, RIGHT).

Повний план навчання, усі 9 уроків і порядок проходження — на сторінці курсу аналітики даних з нуля.

Це урок 1 з 9 курсу аналітики даних.

Уроки виходять щодня о 09:30 — програма і навігація на сторінці курсу.

Поділитися статтею