1.3. Что такое язык SQL
Язык SQL — это непроцедурный язык, который является стандартным средством ра-
боты с данными во всех реляционных СУБД. Операторы (команды), написанные на
этом языке, лишь указывают СУБД, какой результат должен быть получен, но не опи-
сывают процедуру получения этого результата. СУБД сама определяет способ вы-
полнения команды пользователя. В языке SQL традиционно выделяются группа опе-
раторов определения данных (Data Definition Language — DDL), группа операторов
манипулирования данными (Data Manipulation Language — DML) и группа опера-
торов, управляющих привилегиями доступа к объектам базы данных (Data Control
Language — DCL).
К операторам языка определения данных (DDL) относятся команды для создания,
изменения и удаления таблиц, представлений и других объектов базы данных. Де-
тальному рассмотрению этих команд посвящены главы 5 и 8.
18
1.4. Описание предметной области и учебной базы данных
К операторам языка манипулирования данными (DML) относятся команды для вы-
борки строк из таблиц, вставки строк в таблицы, обновления и удаления строк. Эти
команды подробно рассматриваются в главах 6 и 7.
Операторы DCL в пособии не рассматриваются, т. к. PostgreSQL позволяет на началь-
ном этапе изучения языка SQL обойтись без их использования.
1.4. Описание предметной области и учебной базы данных
Чтобы показать все основные возможности языка SQL, нам потребуется база данных.
Эта база данных не должна быть слишком сложной, чтобы ее изучение не потребо-
вало слишком много времени. Но вместе с тем она должна быть достаточно разнооб-
разной, чтобы запросы к ней выглядели бы правдоподобными, почти такими же, как
и в реальной работе.
В качестве предметной области выберем пассажирские авиаперевозки. Ее ориги-
нальное описание и описание базы данных «Авиаперевозки» можно найти по адре-
сам https://postgrespro.ru/education/demodb и https://postgrespro.ru/docs/postgrespro/
current/demodb-bookings.html. Надеемся, что эта область знакома многим читателям
нашего учебного пособия. Конечно, в учебных целях реальная ситуация намеренно
упрощена, но все принципиальные вещи сохранены.
Итак, некая российская авиакомпания выполняет пассажирские авиаперевозки. Она
обладает своим парком самолетов различных моделей. Каждая модель самолета име-
ет определенный код, который присваивает Международная ассоциация авиапере-
возчиков (IATA). При этом будем считать, что самолеты одной модели имеют оди-
наковые компоновки салонов, т. е. порядок размещения кресел и нумерацию мест
в салонах бизнес-класса и экономического класса. Например, если это модель Sukhoi
SuperJet-100, то место 2A относится к бизнес-классу, а место 20D — к экономическому
классу. Бизнес-класс и экономический класс — это разновидности так называемого
класса обслуживания.
Наша авиакомпания выполняет полеты между аэропортами России. Каждому аэро-
порту присвоен уникальный трехбуквенный код, при этом используются только за-
главные буквы латинского алфавита. Эти коды присваивает не сама авиакомпания,
а специальные организации, управляющие пассажирскими авиаперевозками. Зача-
стую название аэропорта не совпадает с названием того города, которому этот аэро-
порт принадлежит. Например, в городе Новосибирске аэропорт называется Толмаче-
во, в городе Екатеринбурге — Кольцово, а в Санкт-Петербурге — Пулково. К тому же
19
|