Learning Platform
Урок 02.03 · 14 мин
Начальный
sqlосновы

Что мы сейчас сделаем

В прошлом уроке ты нажал кнопку и увидел данные. Теперь начнём управлять тем, что именно показывает база. Это и есть главная команда SQL — SELECT, то есть “выбери”. Мы пройдём четыре маленьких шага, и после каждого ты сам нажмёшь “Запустить” и увидишь, как меняется результат.

Никакой теории про множества и формулы здесь не будет — только практика. Почему всё это работает именно так, мы разберём уже в модуле 2. А сейчас цель простая: научиться доставать ровно те данные, которые тебе нужны.

Шаг 1. Достаём всё: SELECT *

Самый базовый запрос ты уже видел: SELECT * FROM customers;. Разберём его по словам:

  • SELECT — “выбери”;
  • * — “все столбцы” (звёздочка — это сокращение для “всё”);
  • FROM customers — “из таблицы customers”.

Получается фраза “выбери все столбцы из таблицы клиентов”. Запусти и посмотри, сколько всего клиентов в базе и какие у них столбцы:

Все клиенты, все столбцы:

PostgreSQL

Посчитай столбцы в шапке — это все свойства, которые база хранит про клиента. SELECT * удобен, чтобы быстро глянуть “а что вообще тут есть”. Но обычно тебе нужны не все столбцы сразу, а только пара нужных. Переходим к шагу 2.

Шаг 2. Выбираем конкретные столбцы

Вместо звёздочки можно перечислить названия столбцов через запятую. Тогда база покажет только их — меньше лишнего, легче читать. Допустим, нас интересуют только имя и страна клиента:

Только имя и страна -- остальные столбцы база не покажет:

PostgreSQL

Сравни с прошлым результатом: строк столько же (клиенты те же самые), но столбцов теперь ровно два — те, что ты попросил, и в том порядке, в котором перечислил. Попробуй поменять их местами или добавить третий столбец email — просто допиши его через запятую и запусти снова.

TIP

Порядок столбцов в результате — это порядок, в котором ты их перечислил в SELECT, а не порядок в таблице. Хочешь сначала страну, потом имя — так и напиши: SELECT country, full_name.

Шаг 3. Ограничиваем число строк: LIMIT

Сейчас клиентов немного, но в настоящих базах их бывают миллионы. Тащить все строки, чтобы просто “глянуть на пару примеров”, незачем. Для этого есть LIMIT — “не больше, чем столько строк”. Допишем LIMIT 3 в конец запроса, и база вернёт максимум три строки:

Только первые 3 клиента:

PostgreSQL

Получилось ровно три строки. Поменяй число — поставь LIMIT 1 или LIMIT 5 и посмотри, как меняется результат. LIMIT — твой лучший друг, когда хочешь быстро заглянуть в большую таблицу и не ждать миллион строк.

Шаг 4. Фильтруем по условию: WHERE

Самое полезное — доставать не всех подряд, а только тех, кто подходит под условие. За это отвечает WHERE — “где (выполняется условие)”. Например, “покажи только клиентов из России”. Страна России записана в базе как 'RU' (в кавычках, потому что это текст). Условие пишется так: WHERE country = 'RU'.

Только клиенты из России:

PostgreSQL

В результате остались только строки, где в столбце country стоит RU. База прошла по всем клиентам, проверила у каждого условие и оставила только подходящих. Остальных она не показала — не удалила, а просто не вернула в этот ответ.

Несколько важных мелочей про WHERE:

  • текст всегда в одинарных кавычках: 'RU', 'US'. А числа — без кавычек;
  • для текста регистр букв важен: 'RU' и 'ru' для базы — это разные значения;
  • знак = здесь означает “равно”. Есть и другие сравнения, например birth_year > 2000 (“год рождения больше 2000”) — но это уже число, поэтому без кавычек.

Попробуй сам: поменяй 'RU' на 'US' и запусти. Потом попробуй числовое условие — например, найди клиентов, родившихся после 2000 года:

Замени условие сам: попробуй country = 'US', а потом birth_year > 2000:

PostgreSQL

Собираем всё вместе

Теперь у тебя есть четыре кирпичика, и их можно соединять в одном запросе. Порядок слов в SQL фиксированный: сначала SELECT (что показать), потом FROM (откуда), потом WHERE (по какому условию), и в конце LIMIT (сколько максимум). Вот запрос, который использует всё сразу: “покажи имя и год рождения клиентов из России, не больше двух”.

Всё вместе: столбцы + условие + ограничение:

PostgreSQL

Прочитай этот запрос вслух, как фразу: “выбери имя и год рождения из клиентов, где страна — Россия, не больше двух строк”. Видишь — SQL читается почти как обычное предложение. Это и есть его сила.

Мостик к модулю 2

Поздравляю — ты только что написал настоящие осмысленные запросы. Это уже не игрушки: SELECT, выбор столбцов, WHERE и LIMIT — основа, которой пользуются каждый день.

Дальше, в модуле 2, мы разберём, почему это работает: что такое таблица с точки зрения математики, почему строки не имеют гарантированного порядка и откуда берутся “странности” SQL. Это теоретический фундамент — он сделает тебя сильнее в долгую.

NOTE

Если в модуле 2 формулы и слова вроде “реляция” или “кортеж” покажутся тяжёлыми — это совершенно нормально. Ты уже умеешь делать запросы, и это главное. К теории всегда можно вернуться позже, когда практики станет больше. Не застревай на ней с первого раза.

Что важно унести из этого урока

  • SELECT * FROM table — достать все столбцы; перечисление столбцов через запятую — только нужные.
  • Порядок столбцов в результате задаёшь ты в SELECT.
  • LIMIT N — вернуть не больше N строк (удобно для больших таблиц).
  • WHERE условие — оставить только строки, подходящие под условие; текст в одинарных кавычках, числа без.
  • Порядок слов: SELECT ... FROM ... WHERE ... LIMIT ....
Проверка знанийKnowledge check
Чем отличается результат запроса SELECT full_name FROM customers от SELECT * FROM customers по числу строк и по числу столбцов?
ОтветAnswer
Число строк одинаковое: оба запроса проходят по всем клиентам, ни один не отфильтрован (WHERE нет). Отличается число столбцов: SELECT * показывает все столбцы таблицы, а SELECT full_name -- только один столбец, имя. Перечисление столбцов в SELECT влияет на то, какие свойства видны в результате, но не на то, сколько записей возвращается. За число строк отвечают WHERE и LIMIT, а не список столбцов.

Проверьте понимание

Результат: 0 из 0
Концептуальный
Вопрос 1 из 3. Что означает звёздочка * в запросе SELECT * FROM customers?

Закончили урок?

Отметьте его как пройденный, чтобы отслеживать свой прогресс

Войдите чтобы оценить урок

Прогресс модуля
0 из 3