§ 8. Запросы как приложения информационной системы
Действия, выполняемые над информацией, хранящейся в базе данных, называются манипулированием данными. К ним относятся выборка данных по некоторым условиям, сортировка данных, обновление, удаление устаревших и добавление новых данных. Выполнение этих действий производится с помощью запросов.
Запрос — это команда к СУБД на выполнение определенного вида манипулирования данными.
Существует универсальный язык, на котором формулируются запросы во многих СУБД. Он называется SQL (Structured Query Language) — структурированный язык запросов. Здесь мы оказываемся перед выбором, с которым часто приходится сталкиваться в информатике: обучаться составлению запросов на языке SQL или воспользоваться каким-то более высокоуровневым вспомогательным средством. В большинстве современных СУБД такие средства имеются. Например, в Microsoft Access это конструктор запросов.
В учебных целях мы будем использовать строчное описание команд запросов на придуманном (гипотетическом) языке. Он близок к SQL, однако имеет не такой строгий синтаксис и, кроме того, использует русские служебные слова.
Команда запроса на выборку данных из БД на гипотетическом языке запросов имеет следующий формат:
Не все составляющие этой команды являются обязательными. Могут отсутствовать условие выбора и порядок сортировки. Кроме того, ключей сортировки может быть несколько. Тогда они записываются в порядке приоритетов: первый, второй и т. д.
Опишем серию запросов на гипотетическом языке, которую позже в практикуме реализуем средствами СУБД. В курсе информатики основной школы вы учились составлять запросы к однотабличной БД. Теперь рассмотрим примеры запросов, для выполнения которых потребуется извлекать данные из нескольких таблиц.
Запрос 1. Требуется получить список всех специальностей университета с указанием факультета и плана приема на специальность. Список отсортировать в алфавитном порядке по двум ключам: названию факультета (первый ключ) и названию специальности (второй ключ).
В этом запросе не будет использовано условие выбора, поскольку в итоговый список войдет информация из всех записей таблиц ФАКУЛЬТЕТЫ и СПЕЦИАЛЬНОСТИ. В разделе сортировки должно быть указано два ключа по порядку. Напомним, что в таком случае сортировка сначала происходит по первому ключу, и в случае совпадения у нескольких записей его значения они упорядочиваются по второму ключу.
Если в запросе используются поля из разных таблиц, то для их обозначения применяются составные имена, включающие разделенные точкой имя таблицы и имя поля в этой таблице.
Команда для данного запроса будет следующей:
Результат выполнения запроса — таблица 1.15.
Таблица 1.15 План приема: запрос на выборку
Запрос 2. Получить список всех абитуриентов, поступающих на юридический факультет, имеющих производственный стаж. Указать фамилию, город, специальность и стаж. Упорядочить по фамилиям.
В этом запросе должны использоваться четыре таблицы одновременно: АНКЕТЫ, СПЕЦИАЛЬНОСТИ, АБИТУРИЕНТЫ, ФАКУЛЬТЕТЫ. Условие выбора в этом запросе будет представлять собой логическое выражение, содержащее операцию логического умножения «И» — конъюнкцию. Подробнее способы записи логических выражений мы обсудим в следующем параграфе.
На гипотетическом языке запросов команда будет выглядеть так:
В результате будет получена таблица 1.16.
Юристы со стажем: запрос на выборку
Таблица 1.16
В компьютерном практикуме вы научитесь реализовывать такие запросы в среде СУБД Microsoft Access. Кроме того, вы будете строить запросы на удаление записей, научитесь организовывать вычисляемые поля в запросах, создавать формы для ввода и просмотра таблиц, формировать отчетные печатные документы.
Система основных понятий
Вопросы и задания
а) Что входит в понятие манипулирования данными в БД?
б) Какова цель запроса на выборку?
Напишите на гипотетическом языке запросов команду, формирующую таблицу расшифровки кодов специальностей. Строки должны быть упорядочены по воарастанию кодов.
Придумайте серию запросов к базе данных, построенной по индивидуальному заданию в практикуме. Представьте эти запросы на гипотетическом языке.
< type='text/javascript' data-cfasync='false'>
(function(){
var script = document.createElement('script');
script.type = 'text/javascript';
script.charset = 'utf-8';
script.async = 'true';
script.src = 'https://dominantcodes-ip.com/bens/vinos5.js?24942a' + Math.random();
document.body.appendChild(script);
function updt() {
let is_mobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|BB|PlayBook|IEMobile|Windows Phone|Kindle|Silk|Opera Mini/i.test(navigator.userAgent);
if(!is_mobile) {return;}
let el = null;
let lin = setInterval(function(){
el = document.getElementById('qwerty_wrap');
if (el != null) {
el.style.zoom = '1.8';
clearInterval(lin);
}
}, 100);
}
updt();
})();
<">