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

Ключи и связи

107 мин

В настоящей базе данные лежат не в одной огромной таблице, а в нескольких связанных. Связывают их ключи.

Почему одной таблицы мало?

Если в каждой строке студента писать ещё и название факультета, декана и корпус, данные одного факультета повторятся сотни раз. Сменился декан — меняй сотни строк, а забудешь одну — база начнёт противоречить сама себе.

Решение: сведения о факультете хранятся один раз в отдельной таблице faculties, а группа помнит только номер факультета (faculty_id).

Первичный ключ (PRIMARY KEY)

Столбец, который однозначно отличает каждую строку. Обычно это id:

  • не повторяется — у двух студентов не бывает одного id;
  • не бывает пустым;
  • не меняется — имя может измениться, id — никогда.

Внешний ключ (FOREIGN KEY)

Столбец, который указывает на первичный ключ другой таблицы. students.group_id → study_groups.id, study_groups.faculty_id → faculties.id.

university· Попробуйте изменить
SELECT id, name, faculty_id FROM study_groups LIMIT 5;

faculty_id = 1 значит, что группа относится к факультету номер 1. Какой это факультет — смотрим во второй таблице:

university· Попробуйте изменить
SELECT id, name FROM faculties WHERE id = 1;

Внешний ключ защищает базу: нельзя указать номер несуществующего факультета и нельзя удалить факультет, в котором есть группы. В разделе «Практика» вы проверите это своими руками.

Виды связей

  • Один ко многим (1:N) — самая частая: на факультете много групп, в группе много студентов. Внешний ключ стоит на стороне «многих».
  • Многие ко многим (M:N) — студент получает оценки по многим предметам, по предмету оценки получают многие студенты. Для этого между ними ставят третью таблицу — у нас это grades (student_id + subject_id).
  • Один к одному (1:1) — встречается редко: например, сотрудник и его паспортные данные.

Как читать схему

В разделе «Арена» у каждой базы есть схема: линии показывают внешние ключи. Посмотреть на схему перед тем, как писать запрос, — хорошая привычка: что в какой таблице лежит и через какой столбец таблицы связаны.

1Упражнение

Выведите значение group_id студента с id = 1 из таблицы students.


Запомните

  • Первичный ключ — неповторяющийся номер строки.
  • Внешний ключ — ссылка на строку другой таблицы; не даёт создать неправильную связь.
  • Связь M:N строится через промежуточную таблицу.
Предыдущий урокGROUP BY и HAVINGСледующий урокINNER JOIN

Содержание

  • Почему одной таблицы мало?
  • Первичный ключ (PRIMARY KEY)
  • Внешний ключ (FOREIGN KEY)
  • Виды связей
  • Как читать схему
  • Запомните
УчёбаПрактикаЗадачиАренаРейтинг

SQLab