SQLab
УчёбаПрактикаЗадачиАренаРейтинг
© 2026 SQLab · Ташкент
SQLab

Учите SQL прямо в браузере — ничего не нужно устанавливать.

Платформа

  • Учёба
  • Практика
  • Задачи
  • Арена
  • Рейтинг

Для кого

  • Студентам
  • Преподавателям
  • Университетам
© 2026 SQLab. Все права защищены.Сделано в Узбекистане для студентов.
УчёбаПрактикаЗадачиАренаРейтинг
0/26

Основы

  • Что такое база данных?
  • Первый SELECT
  • WHERE: отбор нужных строк
  • IN, BETWEEN, LIKE и NULL
  • Сортировка, LIMIT и DISTINCT

Вычисления

  • Выражения, функции и CASE
  • Работа с датами
  • COUNT, SUM, AVG, MIN, MAX
  • GROUP BY и HAVING

Соединение таблиц

  • Ключи и связи
  • INNER JOIN
  • LEFT JOIN и строки без пары
  • Несколько таблиц и self join

Сложные запросы

  • Подзапросы
  • UNION, INTERSECT, EXCEPT
  • WITH: именованные запросы
  • Оконные функции

Создание и изменение таблиц

  • CREATE TABLE: типы и ограничения
  • INSERT, UPDATE, DELETE
  • ALTER, DROP, TRUNCATE
  • Как правильно спроектировать базу

Профессиональный уровень

  • Индексы и EXPLAIN
  • Транзакции и ACID
  • VIEW: сохранённые запросы
  • Функции, процедуры, триггеры
  • Пользователи, права и резервные копии
Учёба/Основы

IN, BETWEEN, LIKE и NULL

048 мин

С = и > можно сделать многое, но для коротких и точных условий в SQL есть ещё четыре полезных инструмента.

IN — одно из списка

Вместо нескольких OR:

university· Попробуйте изменить
SELECT first_name, last_name, city
FROM students
WHERE city IN ('Buxoro', 'Navoiy', 'Urganch');

Это то же самое, что city = 'Buxoro' OR city = 'Navoiy' OR city = 'Urganch', только короче. Обратное — NOT IN.

BETWEEN — в диапазоне

university· Попробуйте изменить
SELECT first_name, last_name, score
FROM grades JOIN students ON students.id = grades.student_id
WHERE score BETWEEN 90 AND 100;

BETWEEN a AND b включает границы, то есть это >= a AND <= b. Работает и для дат:

university· Попробуйте изменить
SELECT first_name, last_name, birth_date FROM students
WHERE birth_date BETWEEN '2006-01-01' AND '2006-03-31';

LIKE — поиск по шаблону

  • % — любое количество символов (в том числе ни одного);
  • _ — ровно один символ.
university· Попробуйте изменить
SELECT first_name, last_name FROM students WHERE last_name LIKE 'Ra%';
Шаблон Значение
'A%' начинается на A
'%ova' заканчивается на «ova»
'%bek%' содержит «bek»
'_a%' вторая буква — «a»

В PostgreSQL LIKE различает регистр: 'a%' не найдёт «Aziz». Для поиска без учёта регистра есть ILIKE: WHERE first_name ILIKE 'a%'.

NULL — значения нет

NULL означает «неизвестно» или «не заполнено». Например, у некоторых студентов не указан телефон. NULL ничему не равен — даже самому себе! Поэтому = NULL не работает:

university· Попробуйте изменить
SELECT first_name, last_name FROM students WHERE phone IS NULL;

Правильно — IS NULL и IS NOT NULL.

university· Попробуйте изменить
SELECT name FROM study_groups WHERE curator_id IS NOT NULL LIMIT 5;
1Упражнение

Выведите name и brand товаров брендов «Apple», «Samsung» или «Xiaomi» из таблицы products.


2Упражнение

Выведите name и price товаров с ценой от 1 000 000 до 3 000 000 включительно.


3Упражнение

Выведите first_name и phone покупателей, у которых не указан e-mail.


Запомните

  • IN (…) — одно из списка; BETWEEN a AND b — диапазон с границами.
  • LIKE: % — любые символы, _ — один символ.
  • С NULL работают только IS NULL / IS NOT NULL.
Предыдущий урокWHERE: отбор нужных строкСледующий урокСортировка, LIMIT и DISTINCT

Содержание

  • IN — одно из списка
  • BETWEEN — в диапазоне
  • LIKE — поиск по шаблону
  • NULL — значения нет
  • Запомните
УчёбаПрактикаЗадачиАренаРейтинг

SQLab