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: сохранённые запросы
  • Функции, процедуры, триггеры
  • Пользователи, права и резервные копии
Учёба/Вычисления

Выражения, функции и CASE

069 мин

SELECT не только показывает столбцы — он ещё и вычисляет. В этом уроке — арифметика, работа с текстом и условие «если … то» через CASE.

Арифметика

Работают + - * / и % (остаток от деления):

shop· Попробуйте изменить
SELECT name, price, price * 0.88 AS discounted FROM products LIMIT 5;

Осторожно с делением целого на целое. В PostgreSQL 7 / 2 = 3 (дробная часть отбрасывается), а в MySQL — 3.5000. Нужна дробь — сделайте одно из чисел дробным: 7 * 1.0 / 2.

Округление: ROUND

shop· Попробуйте изменить
SELECT name, ROUND(price / 12, 0) AS per_month FROM products LIMIT 5;

ROUND(число, n) — до n знаков. Есть ещё CEIL (вверх) и FLOOR (вниз).

Функции для текста

Функция Что делает
UPPER(s) / LOWER(s) заглавные / строчные буквы
LENGTH(s) количество символов
TRIM(s) убирает пробелы в начале и в конце
SUBSTRING(s, 1, 3) 3 символа, начиная с 1-го
REPLACE(s, 'a', 'b') замена

Склеивание строк:

В PostgreSQL — оператор || или функция CONCAT:

university· Попробуйте изменить
SELECT first_name || ' ' || last_name AS full_name FROM students LIMIT 5;

Вычисления с NULL: COALESCE

Любое вычисление с участием NULL даёт NULL: 5 + NULL = NULL. COALESCE(a, b) берёт b, если a пустое:

university· Попробуйте изменить
SELECT first_name, COALESCE(scholarship, 0) AS scholarship FROM students LIMIT 8;

CASE — «если … то»

university· Попробуйте изменить
SELECT student_id, score,
       CASE
         WHEN score >= 86 THEN 'отлично'
         WHEN score >= 71 THEN 'хорошо'
         WHEN score >= 56 THEN 'удовл.'
         ELSE 'неуд.'
       END AS mark
FROM grades
LIMIT 8;

Условия проверяются сверху вниз, берётся первое подходящее. Если не подошло ни одно — ELSE, а если нет и его — NULL.

1Упражнение

Выведите name каждого товара и общую стоимость его остатка на складе (price * stock).


2Упражнение

Выведите first_name водителей и категорию по рейтингу: 4.8 и выше — 'top', остальные — 'oddiy', у кого рейтинга нет — 'yangi'.


Запомните

  • В SELECT можно считать; с делением целых чисел будьте внимательны.
  • COALESCE(x, 0) подставляет значение вместо NULL.
  • CASE WHEN … THEN … ELSE … END выбирает значение по условию.
Предыдущий урокСортировка, LIMIT и DISTINCTСледующий урокРабота с датами

Содержание

  • Арифметика
  • Округление: ROUND
  • Функции для текста
  • Вычисления с NULL: COALESCE
  • CASE — «если … то»
  • Запомните
УчёбаПрактикаЗадачиАренаРейтинг

SQLab