Что такое SQL
Аналогия: база данных — это большая Excel-книга. Листы = таблицы. SQL — язык, на котором вы говорите: «покажи мне строки вот из этого листа по такому условию».
SQL (Structured Query Language) — язык запросов к базе данных.
Сайт почти всегда хранит данные не «в кнопках», а в таблицах:
- пользователи
- заказы
- товары
- тикеты
Когда вы видите на экране список заказов, часто «под капотом» уже отработал SQL-запрос.
Таблица users (пользователи)
| id | name | city |
| 1 | Анна | Москва |
| 2 | Борис | Казань |
| 3 | Кира | Москва |
Для новичка главное: SQL не рисует сайт. Он достаёт данные. А уже приложение показывает их в интерфейсе.
SELECT — «покажи»
Аналогия: SELECT — как сказать: «открой таблицу и покажи нужные колонки».
SELECT выбирает, какие данные вернуть.
Пример
SELECT
SELECT name, city
FROM users;
Смысл: покажи имена и города из таблицы пользователей
Что получится
| name | city |
| Анна | Москва |
| Борис | Казань |
| Кира | Москва |
SELECT * — покажи все колонки
SELECT name — только имя
FROM users — из какой таблицы брать
Если на UI пусто, иногда SELECT просто ничего не вернул — данных нет, а не «кнопка сломалась».
WHERE — «только такие»
Аналогия: WHERE — фильтр. Как сито: оставь только строки, которые подходят под условие.
WHERE ограничивает результат.
Пример
WHERE
SELECT name, city
FROM users
WHERE city = 'Москва';
Смысл: покажи только пользователей из Москвы
Что получится
| name | city |
| Анна | Москва |
| Кира | Москва |
Частые условия
= — равно
!= или <> — не равно
> < — больше / меньше
LIKE '%ан%' — содержит текст
AND / OR — несколько условий вместе
Фильтры на сайте (город, статус, дата) часто = WHERE в запросе. Если фильтр «врёт», смотрите не только UI, но и условие выборки.
JOIN — «склей таблицы»
Аналогия: в одной таблице — люди, в другой — заказы. JOIN соединяет их по общему полю, как скрепка: «чей это заказ».
JOIN нужен, когда данные лежат в разных таблицах, а на экране вы хотите видеть их вместе.
Таблица orders (заказы)
| id | user_id | product |
| 101 | 1 | Ноутбук |
| 102 | 3 | Наушники |
| 103 | 1 | Мышь |
Пример
JOIN
SELECT users.name, orders.product
FROM orders
JOIN users ON users.id = orders.user_id;
Смысл: к каждому заказу подставь имя покупателя
Что получится
| name | product |
| Анна | Ноутбук |
| Кира | Наушники |
| Анна | Мышь |
Зачем это тестировщику
- На UI «Заказ Анны», а в данных склеилось неверно — часто ошибка JOIN/связи.
- Пустой список может быть из-за того, что связь не нашлась.
- Дубли в списке иногда появляются, когда таблицы склеились «лишний раз».
На старте достаточно понимать: JOIN = соединить таблицы по общему ключу (например, user_id).
Мини-практика на 15–20 минут
- Возьмите две «таблицы» на бумаге: users и orders.
- Напишите SELECT, который покажет все имена.
- Добавьте WHERE: только город «Москва».
- Сделайте JOIN: имя пользователя + товар из заказа.
- Своими словами объясните разницу: SELECT достаёт, WHERE фильтрует, JOIN склеивает.
Если можете объяснить это на примере интернет-магазина — день 5 пройден.