"Информатика", Поляков К.Ю., Еремин Е.А.
Запрос — способ обратиться к базе данных, чтобы получить нужные записи или изменить данные. Он помогает не просматривать таблицу целиком, а выбрать только подходящие сведения, например книги, изданные после заданного года. В запросе указывают таблицу-источник, поля для результата, условие отбора и, если нужно, порядок сортировки. Для реляционных баз данных запросы часто записывают на языке SQL.
Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.
Запрос — обращение к базе данных, которое позволяет получить записи по заданным условиям или изменить данные. Его используют, когда нужно найти нужную часть сведений, а не просматривать все таблицы вручную. Например, можно запросить список учеников одного класса.
Язык SQL — язык для создания запросов к реляционным базам данных, в которых данные организованы в таблицы. В запросах на выборку применяются команды SELECT, FROM, WHERE и ORDER BY. SQL помогает точно указать, какие данные нужны и как их обработать.
Условие отбора — выражение, по которому запрос решает, подходит ли запись для результата. В нём сравнивают значения полей с числами или текстом, а также объединяют несколько проверок логическими словами AND и OR. Условие позволяет сузить выборку до записей, отвечающих задаче.
Сортировка записей — упорядочивание результата запроса по значениям одного или нескольких полей. Например, список товаров можно расположить по цене от меньшей к большей или наоборот. Сортировка делает результат удобнее для сравнения и поиска.
Запрос отличается от таблицы: таблица хранит исходные записи, а запрос описывает, как получить из них нужный результат. Это удобно, потому что для разных задач не приходится заводить новые копии одних и тех же данных. Запрос на выборку читает сведения из таблицы и показывает подходящие строки, не изменяя их.
В запросе указывают источник данных и поля, которые должны попасть в результат. Источником обычно служит таблица, а поля задают, какие именно свойства объектов показать. Если нужны, например, только фамилии и классы, остальные сведения можно не выводить. Так результат содержит только полезную для задачи информацию.
Условие отбора проверяется для каждой записи отдельно: если выражение истинно, запись включается в результат, а если ложно — не включается. Для чисел подходят сравнения вроде Год > 2020, а текстовое значение сравнивают с указанным словом. Несколько требований можно соединить AND, когда должны выполняться все условия, или OR, когда достаточно одного. Правильное условие важно составить по смыслу задачи и с учётом типа поля.
Команды запроса задают порядок работы с данными: сначала указывают таблицу-источник, затем выбирают подходящие записи и поля, а при необходимости упорядочивают результат. В SQL части запроса записывают в установленной последовательности: SELECT, FROM, WHERE, ORDER BY. Перечень полей в SELECT определяет состав результата, а условие WHERE — какие записи в него попадут. Поэтому запрос сначала нужно мысленно разложить на вопросы: что показать, откуда взять и что отобрать.
Сортировка меняет порядок показа записей, но не сами значения и не их хранение в исходной таблице. По возрастанию числа располагаются от меньшего к большему, а текст — в алфавитном порядке; по убыванию порядок обратный. Если указано несколько полей, сначала сравнивают значения первого, а следующие поля используют для записей с одинаковым значением предыдущего. Поэтому порядок полей в ORDER BY влияет на итоговую последовательность.
| Часть запроса | Назначение | Что указывается |
|---|---|---|
| SELECT | Определяет поля результата | Имена полей или * |
| FROM | Задаёт источник данных | Имя таблицы |
| WHERE | Отбирает записи по условию | Логическое выражение |
| ORDER BY | Упорядочивает результат | Поле и направление сортировки |
Пользуйся таблицей как планом составления запроса: сначала реши, какие поля нужны, затем назови таблицу и сформулируй условие отбора. ORDER BY добавляй, если важен порядок результата; для убывания после поля указывают DESC. Если условие отбора не требуется, часть WHERE можно опустить.
Задача 1. В таблице «Ученики» выбрать фамилии и классы всех записей. Нужно вывести два поля и не ограничивать результат условием, потому что требуются все записи. Таблица «Ученики» будет источником данных.
Определи поля результата: это Фамилия и Класс, поэтому их перечисляем после SELECT.
Укажи таблицу-источник после FROM. Условие WHERE не добавляй, так как отбирать отдельные записи не требуется.
Собери команды в запрос: SELECT Фамилия, Класс FROM Ученики. Результат будет содержать фамилии и классы всех учеников.
Ответ: SELECT Фамилия, Класс FROM Ученики.
Задача 2. Из таблицы «Книги» выбрать названия книг, изданных после 2020 года. Требуется вывести только поле Название, но включить в результат лишь записи, где год издания больше 2020. Год — числовое значение, поэтому его можно сравнить со значением 2020.
После SELECT укажи поле, которое нужно видеть: Название. Другие поля не попадут в результат.
После FROM назови источник — таблицу Книги. Так запрос будет знать, где искать названия и годы издания.
Добавь WHERE Год > 2020: знак > означает «больше». В итоге запрос выглядит так: SELECT Название FROM Книги WHERE Год > 2020.
Ответ: запрос выведет названия книг, год издания которых больше 2020.
Задача 3. Из таблицы «Товары» вывести названия и цены товаров дороже 500 рублей, расположив результат от большей цены к меньшей. Здесь одновременно нужно отобрать записи по цене и упорядочить отобранные товары. Поле Цена участвует и в условии, и в сортировке, но в результат включается вместе с названием.
После SELECT перечисли поля Название и Цена, а после FROM укажи источник Товары. Эти части определяют столбцы результата и таблицу, из которой берутся сведения.
Условие WHERE Цена > 500 оставит товары, цена которых превышает 500 рублей. Равная 500 цена не подойдёт, потому что используется строгое сравнение >.
После условия добавь ORDER BY Цена DESC. DESC задаёт убывание, поэтому более дорогие товары окажутся раньше дешёвых.
Ответ: SELECT Название, Цена FROM Товары WHERE Цена > 500 ORDER BY Цена DESC.
Путают поля и записи. Поле описывает свойство объекта, например Класс, а запись содержит значения всех свойств одного ученика. Путаница возникает потому, что и поля, и записи видны в одной таблице. Проверь себя: поле — заголовок столбца, запись — строка с данными об одном объекте.
Забывают таблицу-источник. Если не указать FROM и имя таблицы, запрос не узнает, откуда брать сведения. Эту часть легко пропустить, сосредоточившись на выборе нужных полей. Проверь, что после FROM написано название существующей таблицы.
Неверно записывают условие отбора. Например, текст сравнивают как число или забывают заключить текстовое значение в кавычки. Так происходит, когда не учитывают тип данных поля. Перед запуском проверь тип значения: числа обычно пишут без кавычек, а текст — в кавычках.
Считают, что сортировка меняет исходную таблицу. Команда ORDER BY упорядочивает только показанный результат, поэтому можно ошибочно принять новый порядок за изменение хранения записей. Проверь себя: сортировка не меняет значения полей и не удаляет записи, а лишь задаёт порядок отображения результата.
Для работы с запросами нужно знать устройство реляционной базы данных: таблицы, поля, записи и типы данных. Эти понятия помогают выбрать источник, назвать нужные свойства и правильно сравнить значения. Запросы также используются при поиске и анализе сведений в электронных таблицах и системах управления базами данных. Знание основных команд станет основой для изучения SQL, составных условий отбора и запросов к нескольким таблицам.
Запрос позволяет получить из базы данных результат, соответствующий заданной цели.
В SELECT перечисляют поля, которые должны попасть в результат.
В FROM указывают таблицу-источник.
В WHERE задают условие отбора записей.
В ORDER BY задают порядок сортировки результата.
Запрос на выборку не обязательно изменяет исходные данные.
Чем запрос отличается от таблицы?
Таблица хранит данные в виде полей и записей, а запрос задаёт действия с этими данными. Запрос на выборку показывает результат, полученный из таблицы, но обычно не создаёт отдельную копию и не изменяет исходные записи.
Можно ли получить все поля таблицы одним запросом?
Да. После команды SELECT можно поставить знак *, который означает все поля источника. Например, SELECT * FROM Ученики выбирает все поля таблицы «Ученики».
Как выбрать записи, удовлетворяющие нескольким условиям?
Условия соединяют логическими операциями AND и OR. AND оставляет записи, подходящие сразу под оба условия, а OR — подходящие хотя бы под одно. Например, WHERE Год >= 2020 AND Жанр = 'Фантастика'.
Как задать сортировку по убыванию?
После ORDER BY указывают поле, по которому нужно упорядочить результат, а затем DESC. Например, ORDER BY Цена DESC расположит товары от самой высокой цены к самой низкой.
Изменяет ли запрос на выборку данные в таблице?
Нет, запрос на выборку только получает и показывает подходящие записи. Сортировка и отбор меняют вид результата, но не значения и порядок хранения данных в исходной таблице.
§ 33. Запросы