- •Оглавление
- •Глава 1 Представление данных 6
- •Глава 2 Реляционные базы данных 10
- •Глава 3 Язык структурированных запросов 42
- •Глава 4 Задание к выполнению лабораторных работ 72
- •Глава 5 Курсовая работа 97 Введение
- •Представление данных
- •Уровни представления данных
- •Инфологическая модель «сущность-связь»
- •Основные понятия
- •Характеристика связей
- •Вопросы для самопроверки
- •Реляционные базы данных
- •Основные понятия
- •Объекты реляционной структуры
- •Операции реляционной алгебры
- •Неопределенные значения
- •Ограничения целостности
- •Разработка реляционной базы данных
- •Основные предпосылки
- •Нормализация
- •Нормальные формы
- •Правила нормализации
- •Алгоритм нормализации
- •Нормализация в примерах.
- •Заключение
- •Вопросы для самопроверки
- •Язык структурированных запросов
- •Основные понятия
- •Типы данных
- •Операции над данными и null
- •Выбор данных из базы
- •Выбор данных из базы – оператор join
- •Выбор данных из базы – источник данных запрос
- •Управление структурой базы данных
- •Типы команд управления структурой
- •Типы объектов структуры
- •Создание таблицы
- •Удаление таблицы
- •Создание представления
- •Удаление представления
- •Изменение представления
- •Создание триггера
- •Изменение данных
- •Удаление данных
- •Ограничения целостности при манипулировании данными
- •Пример создания базы данных
- •Заключение
- •Вопросы для самопроверки
- •Задание к выполнению лабораторных работ
- •Лабораторная работа №1. Изучение команды select – простые запросы
- •Задания для самостоятельной работы
- •Контрольные вопросы
- •Содержание отчета
- •Лабораторная работа №2. Изучение команды select – запрос из нескольких источников
- •Задания для самостоятельной работы
- •Контрольные вопросы
- •Видео прокат
- •Вариант 2 Биржа
- •Вариант 3 Биржа труда
- •Вариант 4 Коктейли
- •Вариант 5 Урожай
- •Вариант 6 Фитнес центр
- •Вариант 7 Овощная база
- •Вариант 8 Оборудование
- •Вариант 9 Курортная карта
- •Вариант 10 осаго
- •Контрольные вопросы
- •Содержание отчета
- •Лабораторная работа №3. Разработка структуры базы данных. Вторая часть
- •Задания для самостоятельного решения
- •Контрольные вопросы
- •Содержание отчета
- •Лабораторная работа №3. Разработка системы протоколирования операций над данными реляционной таблицы с использованием триггеров
- •Задание для самостоятельного решения:
- •Контрольные вопросы:
- •Содержание отчета
- •Лабораторная работа №2. Разработка пользовательских функций и процедур
- •Задания для самостоятельного решения
- •Контрольные вопросы:
- •Содержание отчета
- •Лабораторная работа №2. Импорт данных
- •Задания для самостоятельного решения
- •Контрольные вопросы:
- •Содержание отчета
- •Курсовая работа
- •Библиографический список
Выбор данных из базы – оператор join
В предыдущем разделе рассматривались варианты запросов с соединением двух и более таблиц. Условие соединения таблиц определялось в логическом выражении ключевого слова WHERE. Поскольку в реальных задачах большинство запросов используют соединения таблиц и виды этих соединений могут быть различными (ранее рассмотрен только один из видов), то в стандарте SQL появилась альтернативная возможность спецификации соединений – оператор JOIN.
Оператор JOIN применяется после ключевого слова FROM и имеет следующий формат (далее указана только форма FROM все формат всех остальных ключевых слов запроса не изменяется):
FROM источник_данных [псевдоним] тип_соединения JOIN
источник_данных [псевдоним] [ON условие_соединения] [тип_соединения JOIN
источник_данных [псевдоним] [ON условие_соединения] …]
Условие_соединения – это логическое выражение правило формирование совпадает с правилами формирования условия после ключевого слова WHERE.
Тип_соединения – это один из следующих элементов:
{INNER | {LEFT | RIGHT | FULL} OUTER | CROSS }
Определены три типа соединений:
CROSS – декартово произведения, полный аналог соединения рассмотренного в предыдущей главе. Данный вид соединения является симметричным (изменения последовательности источников данных не влияет на результат) и не требует указания условия (конструкция ON условие_соединения).
INNER – внутреннее соединение, в результате данного соединения формируется таблица, состоящая из строк декартового произведения, удовлетворяющих условию, указанному после ON. Данный вид соединения является симметричным.
OUTER – внешнее соединение. При внешнем соединении в результирующую таблицу обязательно попадают все строки одной из соединяемых таблиц или обоих. Различают три типа внешних соединений.
LEFT – левое внешнее соединение, в результате данного соединения формируется таблица, объединяющая две таблицы.
Первая таблица – это результат внутреннего соединения (INNER JOIN) левой и правой таблиц. Вторая таблица состоит из записей левой таблицы, которые не вошли в первую таблицу. Для второй таблицы поля, соответствующие правой таблице, заполняются значениями NULL.
RIGHT – правое внешнее соединение, в результате данного соединения формируется таблица, объединяющая две таблицы.
Первая таблица – это результат внутреннего соединения (INNER JOIN) левой и правой таблиц. Вторая таблица состоит из записей правой таблицы, которые не вошли в первую таблицу. Для второй таблицы поля, соответствующие левой таблице, заполняются значениями NULL.
FULL – полное внешнее соединение, в результате данного соединения формируется таблица, объединяющая три таблицы.
Первая таблица – это результат внутреннего соединения (INNER JOIN) левой и правой таблиц. Вторая таблица состоит из записей правой таблицы, которые не вошли в первую таблицу. Для второй таблицы поля, соответствующие левой таблице, заполняются значениями NULL. Вторая таблица состоит из записей левой таблицы, которые не вошли в первую таблицу. Для второй таблицы поля, соответствующие правой таблице, заполняются значениями NULL. Данный вид соединения является симметричным.
