W Softverno Wiki
День 5 · Погружение

SQL: SELECT, WHERE, JOIN

Простыми словами: как устроены данные в таблицах, как их «достать», отфильтровать и склеить. Этого хватит, чтобы понимать, откуда на сайте берутся списки, карточки и «пустые» экраны.

← Мини-план погружения

Что такое SQL

Аналогия: база данных — это большая Excel-книга. Листы = таблицы. SQL — язык, на котором вы говорите: «покажи мне строки вот из этого листа по такому условию».

SQL (Structured Query Language) — язык запросов к базе данных.

Сайт почти всегда хранит данные не «в кнопках», а в таблицах:

  • пользователи
  • заказы
  • товары
  • тикеты

Когда вы видите на экране список заказов, часто «под капотом» уже отработал SQL-запрос.

Таблица users (пользователи)
idnamecity
1АннаМосква
2БорисКазань
3КираМосква

Для новичка главное: SQL не рисует сайт. Он достаёт данные. А уже приложение показывает их в интерфейсе.

SELECT — «покажи»

Аналогия: SELECT — как сказать: «открой таблицу и покажи нужные колонки».

SELECT выбирает, какие данные вернуть.

Пример SELECT
SELECT name, city
FROM users;

Смысл: покажи имена и города из таблицы пользователей

Что получится

namecity
АннаМосква
БорисКазань
КираМосква
  • SELECT * — покажи все колонки
  • SELECT name — только имя
  • FROM users — из какой таблицы брать

Если на UI пусто, иногда SELECT просто ничего не вернул — данных нет, а не «кнопка сломалась».

WHERE — «только такие»

Аналогия: WHERE — фильтр. Как сито: оставь только строки, которые подходят под условие.

WHERE ограничивает результат.

Пример WHERE
SELECT name, city
FROM users
WHERE city = 'Москва';

Смысл: покажи только пользователей из Москвы

Что получится

namecity
АннаМосква
КираМосква

Частые условия

  • = — равно
  • != или <> — не равно
  • > < — больше / меньше
  • LIKE '%ан%' — содержит текст
  • AND / OR — несколько условий вместе

Фильтры на сайте (город, статус, дата) часто = WHERE в запросе. Если фильтр «врёт», смотрите не только UI, но и условие выборки.

JOIN — «склей таблицы»

Аналогия: в одной таблице — люди, в другой — заказы. JOIN соединяет их по общему полю, как скрепка: «чей это заказ».

JOIN нужен, когда данные лежат в разных таблицах, а на экране вы хотите видеть их вместе.

Таблица orders (заказы)
iduser_idproduct
1011Ноутбук
1023Наушники
1031Мышь
Пример JOIN
SELECT users.name, orders.product
FROM orders
JOIN users ON users.id = orders.user_id;

Смысл: к каждому заказу подставь имя покупателя

Что получится

nameproduct
АннаНоутбук
КираНаушники
АннаМышь

Зачем это тестировщику

  • На UI «Заказ Анны», а в данных склеилось неверно — часто ошибка JOIN/связи.
  • Пустой список может быть из-за того, что связь не нашлась.
  • Дубли в списке иногда появляются, когда таблицы склеились «лишний раз».

На старте достаточно понимать: JOIN = соединить таблицы по общему ключу (например, user_id).

Мини-практика на 15–20 минут

  1. Возьмите две «таблицы» на бумаге: users и orders.
  2. Напишите SELECT, который покажет все имена.
  3. Добавьте WHERE: только город «Москва».
  4. Сделайте JOIN: имя пользователя + товар из заказа.
  5. Своими словами объясните разницу: SELECT достаёт, WHERE фильтрует, JOIN склеивает.

Если можете объяснить это на примере интернет-магазина — день 5 пройден.