Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пособие по SQL.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
960 Кб
Скачать

Министерство образования Российской федерации

Пермский государственный технический университет

И. А. Шмидт

Информационное обеспечение систем управления Построение запросов при работе с базой данных (Учебное пособие)

Тестовая база данных 4

Выборка данных. Команда SELECT 8

Синтаксис оператора SELECT 8

Простые варианты поиска данных 10

Упорядочение результата запроса. Предложение ORDER BY 13

Использование ключевого слова DISTINCT 16

Предложение WHERE 17

Синтаксис предложения WHERE 17

Использование операторов сравнения 18

Использование варианта BETWEEN 20

Проверка на присутствие в списке значений (вариант IN) 21

Проверка на пустое значение 22

Поиск в строковых столбцах 22

Вариант LIKE 22

Использование логических операций в условиях поиска 24

Порядок выполнения логических операций 26

Преобразование данных при выборке 26

Обобщение Данных с помощью Агрегатных Функций 26

Использование DISTINCT с COUNT 27

Предложение GROUP BY 28

Предложение HAVING 30

Соединение таблиц 31

Внутренние соединения (связывание по равенству) 32

Внешние соединения 34

Левое внешнее соединение 34

Правое внешнее соединение 35

Полное внешнее соединение 36

Более сложные примеры соединений 36

Рефлексивное соединение, или самосоединение 40

Использование подзапросов в операторах SQL 41

Выбор одного 41

Использование в подзапросе агрегатных функций 42

Связанные подзапросы 42

Использование оператора EXISTS 45

Использование варианта IN с подзапросами 46

Использование NOT EXISTS 46

Объединение запросов 47

Команда UNION 47

Добавление данных. Команда INSERT 49

Добавление отдельной строки 49

Добавление группы строк 50

Обновление уже имеющихся данных. Команда UPDATE 50

Удаление данных из таблиц. Команда DELETE 51

Генераторы и их использование 52

Создание генераторов 52

Использование генераторов 53

Увеличение значения генератора 53

Получение значения генератора в приложение 53

Триггер 54

Тестовая база данных

Перед изучением языка SQL необходимо рассмотреть тестовую базу данных на которой будут отрабатываться все запросы. Наша тестовая база данных полностью соответствует рассмотренной в учебном пособии по нормализации данных и создании базы данных. Напоминаю, что эта база данных описывает сферу воздушных перевозок. Все пояснения к модели даны в пособии по нормализации данных и создании базы данных

Для начала приведем логическую модель БД, где каждый информационный объект отображается реляционной таблицей, а связи между таблицами соответствуют связям между информационными объектами. Модель представлена в виде диаграммы

Последний этап моделирования БД - переход к физическому уровню модели, на котором модель также представлена в виде диаграммы

Приведем соответствие имен таблиц и полей на логическом и физическом уровне.

Вид объекта

Название на логическом уровне

Название на физическом уровне

Таблица

Авиамаршрут

AIRLINE

Поле

Номер маршрута

AL_NUM

Поле

Код Типа Самолета

AL_PL_CODE

Поле

Код Авиакомпании

AL_AC_CODE

Поле

Откуда

AL_AP_FROM

Поле

Куда

AL_AP_TO

Таблица

Аэропорт

AIRPORT

Поле

Код аэропорта

AP_CODE

Поле

Название аэропорта

AP_NAME

Поле

Код Города

AP_CT_CODE

Таблица

Авиакомпания

AIRCOMPANY

Поле

Код Авиакомпании

AC_CODE

Поле

Название Авиакомпании

AC_NAME

Таблица

Борт

BOARD

Поле

Борт номер

BRD_NUM

Поле

Код Типа Самолета

BRD_PL_CODE

Поле

Код Авиакомпании

BRG_AC_CODE

Таблица

Город

CITY

Поле

Код Города

CT_CODE

Поле

Название Города

CT_NAME

Таблица

Член Экипажа

EQUIPAGE

Поле

Код Члена Экипажа

EQ_CODE

Поле

Дата вылета

EQ_FL_DATE

Поле

Номер маршрута

EQ_FL_NUM

Поле

Код Личности

EQ_PR_CODE

Поле

Код роли

EQ_RNK_CODE

Таблица

Рейс

FLIGHT

Поле

Дата вылета

FL_DATE

Поле

Номер маршрута

FL_NUM

Поле

Борт номер

FL_BRD_NUM

Таблица

Личность

PERSON

Поле

Код Личности

PR_CODE

Поле

ФИО

PR_NAME

Таблица

Тип Самолета

PLANE

Поле

Код Типа Самолета

PL_CODE

Таблица

Роль члена экипажа

RANK

Поле

Код роли

RNK_CODE

Поле

Роль

RNK_NAME

Таблица

Тип Салона

SALON

Поле

Код Типа Салона

SL_TYPE

Поле

Название Типа Салона

SL_NAME

Таблица

Салон в Самолете

SALON_IN_PLANE

Поле

Код Типа Салона

SP_SL_TYPE

Поле

Код Типа Самолета

SP_PL_CODE

Поле

Количество мест

SP_COUNT

Таблица

Расписание

TIMETABLE

Поле

Код аэропорта

TBL_AP_CODE

Поле

Номер маршрута

TBL_AL_NUM

Поле

Время Прилета

TBL_DOWN_TIME

Поле

Время Вылета

TBL_START_TIME

Поле

Номер в Маршруте

TBL_NUMBER

Таблица

Тариф

TARIFF

Поле

Код Тарифа

TR_CODE

Поле

Код Типа Салона

TR_SL_TYPE

Поле

Номер маршрута

TR_AL_NUM

Поле

Цена билета

TR_COST

Поле

Аэропорт Откуда

TR_AP_FROM

Поле

Аэропорт Куда

TR_AP_TO

Таблица

Билет

TICKET

Поле

Номер билета

TC_NUM

Поле

Код Личности

TC_PR_CODE

Поле

Код Тарифа

TC_TR_CODE

Поле

Дата вылета

TC_FL_DATE

Поле

Номер маршрута

TC_FL_NUM

В таблицы тестовой базы данных занесена информация в количестве достаточном для прослеживания основных закономерностей, конечно этих данных намного меньше чем может содержатся в реальной базе данных, посвященной воздушным перевозкам. Все примеры запросов приведенные ниже выполнялись именно на этой базе данных.