ЛЕКЦІЯ 6

Вступ до SQL: декларативний підхід

Основи баз даних

VTFK • 2025

Що вже вивчили

Лекція 5: Типи даних

  • INT, VARCHAR, DECIMAL, DATE
  • CREATE TABLE з обмеженнями
  • Вибір типу за природою даних

План лекції

  • SQL як декларативна мова
  • Структура SELECT запиту
  • FROM та його логіка
  • Перший живий запит

Фокус: как розказати БД ЧТО треба, а не КАК робити

Декларативний vs Імперативний

SQL

Structured Query Language

Мова запитів для отримання, вставки, оновлення та видалення даних у СУБД.

Аналогія: Як звернення до вчителя: ви говорите, що треба, учитель виконує найоптимальнішим способом

Цикл SQL запиту

Від формулювання до результату

%%{init: {"theme": "neutral", "mermaid": {"version": "11.12.2"}}}%% flowchart LR Write[Напишіть запит] --> Parse[Парсинг] Parse --> Plan[Query planner] Plan --> Optimize[Оптимізація] Optimize --> Exec[Виконання] Exec --> Return[Повернення рядків]

Базовий SELECT

SELECT column1, column2, ... FROM table_name;
SELECT — які колонки показати
FROM — з якої таблиці брати дані
; — кінець запиту
SELECT — які колонки показати
FROM — з якої таблиці брати дані
; — кінець запиту
SELECT — які колонки показати
FROM — з якої таблиці брати дані
; — кінець запиту

Що робить SELECT

Компоненти запиту

Рух даних крізь SELECT

Таблиця → результат

%%{init: {"theme": "neutral", "mermaid": {"version": "11.12.2"}}}%% flowchart TD Table[(Таблиця
100 рядків,
10 колонок)] Table -->|FROM| ReadAll[Прочитати все] ReadAll -->|WHERE| Filter[Відфільтрувати] Filter -->|SELECT| Project[Вибрати колонки] Project -->|ORDER BY| Sort[Сортувати] Sort -->|LIMIT| Limit[Обмежити рядки] Limit -->|return| Result[Результат
N рядків,
M колонок]

Перший запит

Вибираємо все з таблиці users

SELECT * FROM users;

Коментарі у SQL

Приклад з коментарями

Вибираємо ID та ім'я користувачів

-- Отримуємо активних користувачів
SELECT 
  id,           -- унікальний ідентифікатор
  name,         -- повне ім'я
  email         -- контактний email
FROM users;  -- вся таблиця користувачів

Клавіші SQL (키워드)

Ключове слово Тип Приклад
SELECT Clause SELECT col1, col2
FROM Clause FROM table_name
WHERE Clause WHERE age > 18
ORDER BY Clause ORDER BY name ASC
AND Оператор col1 > 10 AND col2 < 20
* Спеціальний SELECT * (усе)

Міні-вікторина

Що робить SELECT * FROM users?

  • Видаляє всіх користувачів
  • Читає всі колонки та рядки з users
  • Створює нову таблицю
✅ Правильна відповідь: Читає всі колонки та рядки з users
💡 Пояснення:

SELECT читає, не модифікує. * означає всі колонки.

Помилка: забути FROM

⚠️ ЗАСТЕРЕЖЕННЯ

SELECT без FROM = синтаксична помилка

❌ Неправильно

SELECT id, name;  -- звідки взяти?

БД не знає, з якої таблиці брати

✓ Правильно

SELECT id, name FROM users;

Явно указуємо таблицю

Історія SQL

Від 1970-х до сьогодні

1974

SEQUEL

Першою версія от IBM

1986

SQL-86

Стандарт ANSI/ISO

1999

SQL:1999

Додано OOP розширення

2011

SQL:2011

JSON, віконні функції

2025

Сьогодні

SQL + AI (vector search)

Best practices для SELECT

Міні ТЗ: перший запит

Структура таблиці students

Приклад даних

%%{init: {"theme": "neutral", "mermaid": {"version": "11.12.2"}}}%% table title Students Table Students id int name varchar email varchar age int

Live: запит до students

Гарна практика

-- Отримуємо базову інформацію про студентів
SELECT 
  id,
  name,
  email
FROM students;

-- або скорочено
SELECT id, name, email FROM students;

Підсумки

  • SQL декларативна — каже ЧТО треба, не КАК
  • SELECT указує колонки, FROM указує таблицю
  • LIMIT, WHERE, ORDER BY прилаштовують результат

Далі — функції та вираження у SELECT

Домашнє завдання

Наступна лекція:

Лекція 7: SELECT та вбудовані функції

📚 Корисні ресурси:

📚 Корисні ресурси:

Дякую за увагу! 💾

← Повернутися до списку лекцій