"Информатика (в 2-х частях)", Горячев А.В., Островский С.Л., Паволоцкий А.В., Семёнов А.А., Чернышёва Т.Л., Широков Д.В.
Запрос к базе данных помогает получить именно те сведения, которые нужны, не просматривая всю таблицу вручную. В запросе на выборку указывают источник данных, поля для показа и условия, которым должны соответствовать записи. Программа проверяет условие для каждой строки и формирует результат из подходящих данных. Чтобы выборка была правильной, нужно различать поля и записи, аккуратно задавать критерии и понимать разницу между логическими операциями «И» и «ИЛИ». Сам запрос на выборку исходные данные не исправляет и не удаляет.
Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.
Запрос к базе данных — обращение к базе, которое задаёт, какие данные нужно получить или обработать. Проще говоря, это инструкция программе: найти сведения, отвечающие определённой задаче. Запрос нужен, чтобы не искать нужные значения вручную среди множества строк. Например, можно попросить базу показать учеников с определённой фамилией.
Запрос на выборку — запрос, который выводит записи, удовлетворяющие заданным условиям, не изменяя исходные данные. Он помогает отделить нужные сведения от остальных и представить их в удобном виде. Например, из каталога товаров можно получить только товары дешевле заданной цены. При этом исходная таблица остаётся прежней.
Условие отбора — правило, по которому определяют, включать ли запись в результат запроса. Программа применяет это правило к каждой строке таблицы и проверяет, подходит ли строка. Условие нужно, чтобы запрос не выводил все данные подряд. Например, условием может быть проверка, что значение в поле «Год» больше 2020.
Критерий поиска — конкретное значение или выражение, используемое в условии отбора. Это может быть слово, число или сравнение, например «Иванов» либо «меньше 500». Критерий задаёт, с чем программа сравнивает значение поля. Благодаря ему общее правило отбора превращается в конкретный запрос.
Сначала определяют, из какой таблицы брать данные и какие поля показать в результате. Таблица служит источником, а поля — это её столбцы с отдельными видами сведений: например, «Название», «Цена» или «Раздел». Выбор нужных полей важен, потому что задача не всегда требует показывать всю информацию о каждой записи. Если нужен перечень названий и цен, остальные столбцы можно не выводить.
Затем задают условие отбора для поля таблицы. Программа проверяет значение этого поля в каждой записи и оставляет строки, в которых условие выполнено. Именно поэтому критерий должен относиться к подходящему типу данных: название сравнивают с текстом, а цену — с числом. Если условие относится к полю «Фамилия», оно не проверяет автоматически значения в поле «Имя».
Когда критерии заданы для нескольких полей, нужно определить, должны ли выполняться все условия или достаточно одного. Связка «И» означает, что запись попадёт в результат, только если верны оба условия или все условия в цепочке. Связка «ИЛИ» означает, что достаточно выполнения хотя бы одного. Ошибка в выборе связки меняет состав результата: «И» обычно сужает выборку, а «ИЛИ» расширяет её.
Критерии могут содержать сравнения и несколько условий. Сравнение показывает, как значение соотносится с заданным критерием: например, «Цена < 500» выбирает товары дешевле 500 рублей, но не товары ровно за 500. Чтобы понять результат, возьмите отдельную запись и проверьте её значения по правилу. Если условия объединены, учитывайте их порядок и группировку: для выражения «А и Б или В» нужно знать, относится ли «В» только к части условия или образует отдельную возможность отбора.
После выполнения запроса появляется результат — отдельное представление выбранных данных. В нём отображаются подходящие записи и только те поля, которые были указаны для показа. Поэтому результат может выглядеть не так, как исходная таблица, хотя данные в ней не поменялись. Редактирование или удаление строк исходной таблицы — отдельное действие, а не следствие обычного запроса на выборку.
| Элемент запроса | Что указывается | Зачем нужен |
|---|---|---|
| Источник данных | Таблица или другой набор данных, из которого берут сведения | Определяет, где искать записи |
| Поля результата | Столбцы, которые нужно показать | Убирает из результата ненужные сведения |
| Условие отбора | Правило проверки значений записи | Оставляет только подходящие записи |
| Сочетание критериев | Логические связки «И» и «ИЛИ» | Определяет, сколько условий должна выполнить запись |
| Результат выполнения | Подходящие записи с выбранными полями | Показывает данные, удовлетворяющие запросу |
Составляя запрос, сначала найдите источник данных, затем решите, какие поля нужны в ответе. После этого запишите условие и проверьте, правильно ли соединены критерии. Таблица помогает не смешивать выбор столбцов с отбором строк: это разные части запроса.
Задача. В таблице «Ученики» выбрать записи, в которых фамилия — «Иванов». Требуется получить всех учеников с такой фамилией, а не только первого совпавшего. Для этого нужно сопоставить условие с названием поля и определить, какие строки ему соответствуют. Поля, которые будут показаны в результате, можно выбрать отдельно.
Ответ. В результат попадут все записи, где в поле «Фамилия» указано «Иванов». Остальные записи останутся в исходной таблице, но не будут показаны в этой выборке.
Задача. Из таблицы товаров вывести название и цену товаров стоимостью меньше 500 рублей. Здесь важно отличить поля результата от поля, по которому выполняется отбор. Условие не требует показывать все сведения о товаре, а сравнение должно исключать товары стоимостью ровно 500 рублей.
Ответ. Будут показаны названия и цены товаров стоимостью менее 500 рублей. Другие поля таблицы не выводятся, а товары с ценой 500 рублей или выше не входят в результат.
Задача. Из списка книг выбрать книги, изданные после 2020 года и относящиеся к разделу «Информатика», либо книги раздела «Математика». Слово «либо» задаёт альтернативу: достаточно соответствовать одной из двух групп условий. Поэтому нельзя потребовать, чтобы каждая книга одновременно относилась к обоим разделам.
Ответ. Результат включает книги по информатике, изданные после 2020 года, и книги из раздела «Математика». Явная группировка помогает не применить ограничение по году к книгам из второй группы.
Путать поле и запись — значит принять столбец за строку. Такую ошибку допускают, потому что оба элемента содержат данные, но поле описывает один вид свойства, а запись — один объект целиком. Проверьте себя: если рассматриваете фамилию или цену для многих объектов, это поле; если строку об одном ученике или товаре — запись.
Указывать в результате все поля, хотя нужны только некоторые, — значит выводить лишние сведения. Это происходит, когда выбор столбцов смешивают с отбором записей и считают, что запрос обязательно показывает всю таблицу. Перед запуском перечислите, какие именно столбцы нужны для ответа, и сравните список с полями результата.
Неверно соединять условия через «И» и «ИЛИ» — значит сделать выборку слишком узкой или слишком широкой. Обычно причина в том, что слова в условии задачи не сопоставили с логикой связок. Проверьте на конкретной записи: для «И» должны выполниться все условия, а для «ИЛИ» достаточно одного; отдельно уточните, какие критерии образуют группу.
Считать, что запрос на выборку удаляет или исправляет неподходящие записи, — ошибка в понимании его результата. Запрос только показывает данные, прошедшие проверку, а невидимая запись не обязательно исчезла из таблицы. Чтобы проверить себя, сравните исходный источник с результатом: выборка создаёт представление найденных данных и сама по себе не меняет таблицу.
Для работы с запросами нужно знать устройство таблицы базы данных: поля, записи и значения. Если перепутать столбец со строкой, легко задать критерий не для того элемента. Представление о том, какие данные описывает каждое поле, помогает правильно выбрать источник и поля результата.
Критерии опираются на логические условия, операции «И» и «ИЛИ», а также сравнения чисел и текста. Эти знания помогают понять, какие строки пройдут отбор и почему некоторые значения не попадут в результат. Умение читать сложные условия особенно полезно, когда критериев несколько и они сгруппированы.
Запросы на выборку помогают анализировать большие таблицы, когда вручную искать подходящие строки неудобно. Они позволяют быстро выделить нужные данные, не меняя их источник. Понимание выборки станет основой для изучения других запросов к базе данных, которые могут выполнять иные действия с информацией.
Чем запрос отличается от таблицы?
Таблица хранит данные в полях и записях. Запрос задаёт правила, по которым программа выбирает или обрабатывает данные из таблицы, а результат показывает найденные сведения.
Можно ли вывести в результате запроса только часть полей?
Да. В запросе отдельно выбирают поля, которые нужно показать, и задают условия отбора записей. Поэтому в результате могут быть только нужные столбцы.
Как понять, использовать в критерии «И» или «ИЛИ»?
«И» используют, когда запись должна одновременно соответствовать всем условиям. «ИЛИ» подходит, если достаточно выполнения хотя бы одного из перечисленных условий.
Что произойдёт, если условию отбора соответствует несколько записей?
В результат попадут все записи, которые удовлетворяют условию. Запрос не ограничивается первой найденной строкой.
Изменяет ли запрос на выборку исходную таблицу?
Нет, запрос на выборку только формирует представление с найденными данными. Изменение или удаление записей в исходной таблице таким запросом не выполняется.
§ 3. Запросы к базе данных. Запросы на выборку данных