Акции
категории услуг
Написать
info@obrprofi.ru Отправить сообщение Telegram
Позвонить
Заказать обратный звонок Telegram 8 800 550-24-62
Доставка

Условия доставки

Цифровые инструменты · Блог ОбрПрофи

Основы баз данных: таблицы, ключи и запросы SQL

Обновлено 13 октября 2026Чтение: около 4 мин

Реляционная база данных хранит сведения в таблицах, связанных ключами. SQL позволяет выбирать, соединять и обрабатывать записи. Для понимания запроса сначала определите смысл строки и условие связи, затем проверьте количество записей и итог на небольшом наборе данных.

Иллюстрация рабочих задач по теме: Основы баз данных: таблицы, связи и простые запросы
В этой статье
  1. Таблицы клиентов и заказов
  2. Различайте ключ и обычный столбец
  3. Простой запрос SELECT
  4. Проверьте смысл соединения
  5. Как проверить число строк и сумму

Таблицы клиентов и заказов

Возьмём вымышленный учёт. В таблице клиентов одна строка описывает клиента: идентификатор и название. В таблице заказов строка описывает заказ: собственный номер, идентификатор клиента и сумма. Один клиент может иметь несколько заказов, поэтому его описание хранится отдельно от покупок.

Клиент 1 — Север, клиент 2 — Юг. У первого заказы 100 и 200 рублей, у второго — 300 рублей. Для связи используем идентификатор, для отображения — название. Если название изменится, связь по ключу может сохраниться; не нужно искать заказы по текстовому совпадению имени.

Различайте ключ и обычный столбец

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

У заказа хранится идентификатор клиента. Проверка такой ссылки не доказывает правильность цены или имени: это другой уровень контроля. Отдельно определяют, обязательна ли связь, как обрабатывают неизвестное значение и что происходит при изменении связанных записей. Для введения достаточно записать вопросы к схеме, не проектируя промышленную систему.

Как читать условие JOIN
  1. Левая таблица
  2. Ключ соединения
  3. INNER или LEFT
  4. Строки результата

Результат зависит от ключа и кратности совпадений. Пример с числами разобран ниже.

Простой запрос SELECT

SELECT задаёт возвращаемые поля, FROM — источник, WHERE — условие, ORDER BY — порядок результата. В нашем примере запрос «SELECT id, amount FROM orders WHERE amount > 150 ORDER BY id» отберёт заказы 200 и 300 рублей. Названия таблицы и столбцов относятся к вымышленному набору.

Проверьте условие на границе: заказ 150 рублей не пройдёт «>150», но пройдёт «>= 150». Добавление такого случая помогает увидеть разницу. Сначала объясните результат простой выборки вручную, затем добавляйте новые условия и соединения.

Разобрать тему на курсе

Основы баз данных: таблицы, связи и простые запросы · 12 часов

1 900 ₽

Посмотреть программу

Проверьте смысл соединения

JOIN сопоставляет строки по заданному условию. INNER JOIN оставляет совпавшие пары; LEFT JOIN сохраняет строки левой таблицы и при отсутствии пары возвращает NULL для полей справа. Связь один ко многим может дать несколько строк для одного клиента.

Соединение двух клиентов и трёх заказов даёт три совпавшие строки, а не две. Сумма заказов каждого клиента равна 300 рублей. Добавим клиента 3 без заказа: внутреннее соединение его не покажет, левое покажет с отсутствующими полями заказа. Количество клиентов и количество строк результата теперь особенно важно различать.

Как проверить число строк и сумму

Перед усложнением запроса посчитайте контрольные итоги вручную. В нашем наборе у Севера два заказа на 100 и 200 рублей, у Юга один на 300: общий итог — 600 рублей, клиентов — два, заказов — три. После добавления третьего клиента без заказа INNER JOIN даёт три строки, LEFT JOIN — четыре, а сумма существующих заказов остаётся 600 рублей. Сравнивайте отдельно число клиентов, число заказов и денежный итог.

Для суммы по клиентам нужен групповой расчёт по соответствующему ключу. Отдельно проверьте кратность соединения: лишняя связь может размножить строки и увеличить итог. При проектировании реальной базы дополнительно нужны правила доступа, изменения и восстановления; простая схема помогает освоить саму логику данных.

Пример соединения: количество строк

Пример с условными данными.

СхемаINNER JOIN, строкLEFT JOIN, строк
2 клиента и 3 заказа33
Добавлен клиент без заказа34

Что проверить на практике

  • У каждой таблицы определён смысл строки
  • Идентификаторы и названия разделены
  • Связь один ко многим объяснена на примере
  • Условие выборки проверено на границе
  • INNER JOIN и LEFT JOIN различаются осознанно
  • Число строк и итог сверены вручную

Вопросы по теме

Что означает строка таблицы?

Запись об одной сущности или событии; смысл строки определяют при проектировании.

Для чего нужен первичный ключ?

Чтобы однозначно идентифицировать запись таблицы.

Что проверяет внешний ключ?

Связь с допустимой записью другой таблицы; это не проверка всех смысловых ошибок данных.

Почему после JOIN стало больше строк?

Одна запись может совпасть с несколькими связанными записями. Нужно проверить условие и кратность связи.

Чем LEFT JOIN отличается от INNER JOIN?

LEFT JOIN сохраняет строки левой таблицы при отсутствии совпадения справа; INNER JOIN оставляет совпавшие пары.

Почему сумма после соединения таблиц может оказаться завышенной?

Одна запись может получить несколько совпадений в другой таблице. Если это не учтено, сумма повторится по каждой паре. Проверьте условие соединения, ключи и ожидаемую кратность до группового расчёта.

Обсудим обучение?

Основы баз данных: таблицы, связи и простые запросы

1 900 ₽

Оставьте телефон — менеджер ответит на вопросы о программе и условиях обучения.

Источники и границы проверки

Определения ключей и логика соединений сверены с документацией PostgreSQL. Набор клиентов и заказов — вымышленный пример. Синтаксис конкретной СУБД и свойства рабочей базы нужно проверять отдельно; здесь показана логика выборки и контроль результата.