РУҚА
Задания № 17, 18, 27 · ЕГЭ

Поиск в базе данных

Как составлять условия поиска и находить записи, удовлетворяющие запросу
6 мин чтенияСложность: Обновлено 29 сентября 2026

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

Что такое поиск в базе данных

База данных обычно представляется таблицей. Строка таблицы — это запись об одном объекте, а столбец — поле, то есть характеристика объекта. Например, в таблице «Ученики» записью может быть строка с данными одного ученика, а полями — «Фамилия», «Класс», «Рост», «Оценка». При поиске база данных не изменяется: из всех записей выбираются только те, которые подходят под запрос.

D
Условие поиска

Условие поиска, или условие отбора, — логическое выражение, принимающее значение «истина» или «ложь» для каждой записи. Запись попадает в результат, если условие для неё истинно.

Условия сравнивают значение поля с числом, текстом или значением другого поля. Основные операции сравнения: \(=\), \(\ne\), \(<\), \(>\), \(\le\), \(\ge\). Например, \(\text{Возраст} \ge 14\) означает «возраст не меньше 14», а \(\text{Город} = \text{"Москва"}\) — «город равен Москве».

\[\text{запись входит в результат} \Longleftrightarrow \text{условие поиска истинно}\]

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

Сначала определите, какое поле участвует в сравнении, затем установите знак сравнения и требуемое значение. Важно учитывать тип данных. Числа сравнивают как числа, даты — в хронологическом порядке, а текст обычно сравнивают на совпадение или проверяют по наличию подстроки.

Запись в запросеСмыслПример подходящего значения
\(A = 10\)A равно 1010
\(A \ne 10\)A не равно 107
\(A > 10\)A больше 1011
\(A \ge 10\)A не меньше 1010, 11
\(A < 10\)A меньше 109
\(A \le 10\)A не больше 1010, 9

Если сказано «от \(a\) до \(b\) включительно», используются оба нестрогих неравенства: \(a \le x \le b\). Если границы не входят, записывают \(a < x < b\). Формулировка «не менее» означает \(\ge\), «не более» — \(\le\), «более» — \(>\), «менее» — \(<\).

T
Правило проверки записи

Проверяйте условие отдельно для каждой записи. Если результат проверки — истина, запись включается в ответ; если ложь — не включается. При нескольких условиях сначала определите, как они соединены: логическим И или логическим ИЛИ.

Составные условия и границы диапазона

Составной запрос содержит два или более простых условия. При соединении словом «и» должны выполняться все части. При соединении словом «или» достаточно выполнения хотя бы одной части. Подробная запись такого запроса рассматривается на странице составной запрос.

\[A \land B = 1 \Longleftrightarrow A=1 \text{ и } B=1\]
\[A \lor B = 1 \Longleftrightarrow A=1 \text{ или } B=1 \text{ (или оба)}\]

Например, условие «балл не меньше 60 и не больше 90» записывается так: \(60 \le \text{Балл} \le 90\). Условие «класс 8 или класс 9» записывается как \(\text{Класс}=8 \lor \text{Класс}=9\). Не путайте «и» и «или»: диапазон задаётся пересечением ограничений, а перечисление допустимых вариантов — объединением.

Быстрая проверка

Какие значения удовлетворяют условию \(5 \le x < 8\)?

Разобранный пример

Дана таблица результатов соревнования. Требуется определить, сколько записей удовлетворяет запросу: «участники из команды A, набравшие не менее 70 баллов или занявшие место 1».

УчастникКомандаБаллыМесто
ИвановA754
ПетровB901
СидоровA651
ОрловаA703
КимC802
ЛебедевA692
1
Выделяем два условия, соединённые словом «или». Первое условие само составное: команда A и баллы не менее 70.
\(\displaystyle C_1=(\text{Команда}=\text{"A"})\land(\text{Баллы}\ge70)\)
2
Записываем вторую часть запроса.
\(\displaystyle C_2=(\text{Место}=1)\)
3
Объединяем части логическим ИЛИ.
\(\displaystyle C=C_1\lor C_2\)
4
Проверяем Иванова: команда A и 75 не меньше 70, значит первая часть истинна.
\(\displaystyle C_1=1\Rightarrow C=1\)
5
Проверяем Петрова: команда B не подходит первой части, но место 1 выполняет вторую.
\(\displaystyle C_1=0,\ C_2=1\Rightarrow C=1\)
6
Проверяем Сидорова: команда A подходит, но 65 меньше 70; место 1 подходит.
\(\displaystyle C_1=0,\ C_2=1\Rightarrow C=1\)
7
Орлова подходит первой части: команда A и 70 не меньше 70.
\(\displaystyle C_1=1\Rightarrow C=1\)
8
Ким не из команды A и занял второе место.
\(\displaystyle C_1=0,\ C_2=0\Rightarrow C=0\)
9
Лебедев из команды A, но набрал 69, а место равно 2.
\(\displaystyle C_1=0,\ C_2=0\Rightarrow C=0\)
№
Ответ к примеру

Подходят Иванов, Петров, Сидоров и Орлова. Всего 4 записи. Обратите внимание: Сидоров проходит по второй части «место 1», хотя не проходит по условию о команде и баллах.

Поиск текста, дат и пропусков

Для текстового поля важно точное совпадение: условие «город = Москва» не означает автоматически «Московская область». Если требуется найти слова, содержащие некоторую последовательность символов, применяют подстроку в запросе. Нужно заранее понять, ищется ли совпадение всей строки или только её части.

Даты сравниваются так же, как числа: более поздняя дата больше более ранней. Например, условие «дата после 01.09.2023» записывается как \(\text{Дата}>\text{01.09.2023}\). Если требуется включить указанную дату, используют знак \(\ge\).

Пустое поле нельзя надёжно проверять условием вида \(\text{Поле}=0\): ноль — это число, а пустота означает отсутствие значения. В электронных таблицах и базах данных проверку пустых значений задают специальным условием, если оно предусмотрено формулировкой задания.

Алгоритм решения и проверка результата

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

  1. Перепишите запрос в виде коротких простых условий.
  2. Определите, какие слова соединяют условия: «и», «или», «не».
  3. Поставьте правильные знаки сравнения и отметьте, входят ли границы.
  4. Проверяйте записи по строкам, отмечая истину или ложь для каждой части.
  5. Сосчитайте записи, если требуется количество, или выпишите их, если требуется список.
  6. Повторно проверьте записи на границах диапазона и варианты с текстом.
!
Частые ошибки

1. Путать \(>\) и \(\ge\): «не менее 10» включает 10. 2. Читать «или» как «и», из-за чего теряются записи, подходящие по одной части. 3. Проверять только первое условие составного запроса. 4. Считать строки заголовка или пустые строки записями. 5. Сравнивать текст как число или принимать частичное совпадение за точное. 6. Забывать, что при условии \(A\lor B\) запись проходит, если истинно хотя бы одно из условий.

Приём для сложных запросов

Составьте таблицу с дополнительными столбцами: «первая часть», «вторая часть», «итог». Записывайте 1 для истины и 0 для лжи. Для И итог равен 1 только при двух единицах, для ИЛИ — при наличии хотя бы одной единицы.

Связь с другими операциями базы данных

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

Q
Быстрый тест по теме

Проверь себя

~ 2 мин4 вопроса
Вопрос 1 / 4
Вопрос 1 из 4 · знаки сравнения
Какое условие соответствует словам «температура не выше 25»?
Главное за минуту

Главное

  • Поиск выбирает записи, для которых условие отбора истинно.
  • Знаки \(\ge\) и \(\le\) включают границу, а \(>\) и \(<\) — не включают.
  • При логическом И истинны должны быть все части; при ИЛИ — хотя бы одна.
  • Надёжный способ решения — разбить запрос на простые условия и проверить записи по строкам.
  • Особенно внимательно проверяйте границы диапазонов, текстовые значения, пустые поля и составные запросы.