Слайд 2
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-1.jpg)
Слайд 3
![Основная команда SELECT SELECT [DISTINCT] {*, column [alias],...) FROM table;](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-2.jpg)
Основная команда SELECT
SELECT [DISTINCT] {*, column [alias],...)
FROM table;
SELECT указывает, какие столбцы
FROM
указывает, из какой таблицы
Слайд 4
![Написание команд SQL Команды SQL не различают регистры символов Команды](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-3.jpg)
Написание команд SQL
Команды SQL не различают регистры
символов
Команды SQL могут занимать одну
или
несколько строк
Ключевые слова нельзя сокращать и
размещать на двух строках
Предложения обычно пишутся на
отдельных строках
Для облегчения чтения используются
табуляция и отступы
Слайд 5
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-4.jpg)
Слайд 6
![Арифметические выражения Создаются из данных типа NUMBER и DATE с помощью арифметических операторов](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-5.jpg)
Арифметические выражения
Создаются из данных типа NUMBER и DATE с помощью арифметических
операторов
Слайд 7
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-6.jpg)
Слайд 8
![Неопределенное значение (NULL) Неопределенное значение (NULL) - это когда значение](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-7.jpg)
Неопределенное значение (NULL)
Неопределенное значение (NULL) - это
когда значение недоступно, не присвоено,
неизвестно
или неприменимо.
Это не ноль и не пробел
Слайд 9
![Псевдоним (алиас) столбца Альтернативный заголовок столбца Удобен при вычислениях Следует](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-8.jpg)
Псевдоним (алиас) столбца
Альтернативный заголовок столбца
Удобен при вычислениях
Следует сразу за именем столбца;
ключевое
слово AS между именем столбца с
псевдонимом необязательно
Заключается в двойные кавычки, если
содержит пробелы, специальные символы
или различает регистры символов
Слайд 10
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-9.jpg)
Слайд 11
![Оператор конкатенации Соединяет столбцы или символьные строки с другими столбцами](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-10.jpg)
Оператор конкатенации
Соединяет столбцы или символьные
строки с другими столбцами
Изображается двумя вертикальными
линиями (||)
Создает
столбец с результатом,
представляющий символьное
выражение
Слайд 12
![Дублирование строк По умолчанию выдаются все строки, включая дубликаты.](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-11.jpg)
Дублирование строк
По умолчанию выдаются все строки, включая дубликаты.
Слайд 13
![Устранение строк-дубликатов Дубликаты устраняются с помощью ключевого слова DISTINCT в команде SELECT.](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-12.jpg)
Устранение строк-дубликатов
Дубликаты устраняются с помощью ключевого слова DISTINCT в команде SELECT.
Слайд 14
![Ограничение количества выбираемых строк путем отбора](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-13.jpg)
Ограничение количества выбираемых строк путем отбора
Слайд 15
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-14.jpg)
Слайд 16
![Использование предложения WHERE](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-15.jpg)
Использование предложения WHERE
Слайд 17
![Прочие операторы сравнения](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-16.jpg)
Прочие операторы сравнения
Слайд 18
![Использование оператора BETWEEN Оператор BETWEEN используется для вывода строк по диапазону значений.](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-17.jpg)
Использование оператора BETWEEN
Оператор BETWEEN используется для вывода строк по диапазону значений.
Слайд 19
![Использование оператора IN Оператор IN используется для проверки на вхождение значений в список.](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-18.jpg)
Использование оператора IN
Оператор IN используется для проверки на вхождение значений в
список.
Слайд 20
![Использование оператора LIKE Оператор LIKE используется для поиска символьных значений](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-19.jpg)
Использование оператора LIKE
Оператор LIKE используется для поиска
символьных значений по шаблону с
метасимволами.
Условия
поиска могут включать
алфавитные и цифровые символы.
% обозначает ноль или много символов
_ обозначает один символ
Слайд 21
![Использование оператора LIKE Метасимволы можно комбинировать.](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-20.jpg)
Использование оператора LIKE
Метасимволы можно комбинировать.
Слайд 22
![Логические операторы .](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-21.jpg)
Слайд 23
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-22.jpg)
Слайд 24
![Сортировка по нескольким столбцам Последовательность сортировки определяется порядком столбцов в предложении ORDER BY.](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-23.jpg)
Сортировка по нескольким столбцам
Последовательность сортировки определяется порядком столбцов в предложении ORDER
BY.
Слайд 25
![Однострочные функции Различные типы функций в SQL. •Включение в команды](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-24.jpg)
Однострочные функции
Различные типы функций в SQL.
•Включение в команды SELECT функций различных
типов — символьных, числовых и типа "дата".
•Функции преобразования данных и их использование.
Слайд 26
![Два типа функций SQL](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-25.jpg)
Слайд 27
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-26.jpg)
Слайд 28
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-27.jpg)
Слайд 29
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-28.jpg)
Слайд 30
![Использование функций манипулирования символами](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-29.jpg)
Использование функций манипулирования символами
Слайд 31
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-30.jpg)
Слайд 32
![Использование функции ROUND](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-31.jpg)
Использование функции ROUND
Слайд 33
![Использование функции TRUNC](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-32.jpg)
Использование функции TRUNC
Слайд 34
![Работа с датами • Oracle хранит данные во внутреннем цифровом](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-33.jpg)
Работа с датами
• Oracle хранит данные во внутреннем
цифровом формате.
- Век, год, месяц,
число, часы, минуты, секунды
По умолчанию дата выдается в формате
DD-MON-YY (число- месяц-год)
Функция SYSDATE возвращает текущие
дату и время
DUAL - это фиктивная таблица,
используемая для просмотра SYSDATE
Слайд 35
![Арифметические операции с датами Результатом прибавления числа к дате и](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-34.jpg)
Арифметические операции с датами
Результатом прибавления числа к дате и вычитания числа
из даты является дата.
Результатом вычитания одной даты из другой является количество дней, разделяющих эти даты.
Прибавление часов к дате производится путем деления количества часов на 24.
Слайд 36
![Использование арифметических операторов с датами](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-35.jpg)
Использование арифметических операторов с датами
Слайд 37
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-36.jpg)
Слайд 38
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-37.jpg)
Слайд 39
![Неявное преобразование типов данных Для операций присваивания Oracle может автоматически выполнять следующие п реобразования:](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-38.jpg)
Неявное преобразование типов данных
Для операций присваивания Oracle может автоматически выполнять следующие
п реобразования:
Слайд 40
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-39.jpg)
Слайд 41
![Функция TO_CHAR с датами Модель формата: ■Должна быть заключена в](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-40.jpg)
Функция TO_CHAR с датами
Модель формата:
■Должна быть заключена в апострофы. Различает
символы
верхнего и нижнего регистров. •Может включать любые разрешенные элементы
формата даты. •Использует элемент fm для удаления конечных
пробелов и ведущих нулей.
•Отделяется от значения даты запятой.
Слайд 42
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-41.jpg)
Слайд 43
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-42.jpg)
Слайд 44
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-43.jpg)
Слайд 45
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-44.jpg)
Слайд 46
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-45.jpg)
Слайд 47
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-46.jpg)
Слайд 48
![Использование функции NVL](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-47.jpg)
Использование функции NVL
Слайд 49
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-48.jpg)
Слайд 50
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-49.jpg)
Слайд 51
![Вложенные функции](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-50.jpg)
Слайд 52
![Выборка данных из нескольких таблиц](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-51.jpg)
Выборка данных из нескольких таблиц
Слайд 53
![Темы Команды SELECT для выборки данных из более, чем одной](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-52.jpg)
Темы
Команды SELECT для выборки данных
из более, чем одной таблицы с
помощью эквисоединений
и прочих
видов соединений.
Использование внешних соединений
для просмотра данных, не
удовлетворяющих обычным условиям
соединения
Соединение таблицы с собой
Слайд 54
![Выборка данных из нескольких таблиц](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-53.jpg)
Выборка данных из нескольких таблиц
Слайд 55
![Что такое соединение? Соединение используется для выборки данных из более,](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-54.jpg)
Что такое соединение?
Соединение используется для выборки данных из более, чем одной
таблицы.
Условие соединения указывается в
предложении WHERE.
Если одно и то же имя столбца
присутствует более, чем в одной таблице,
к имени столбца добавляется имя таблицы
в виде префикса .
Слайд 56
![Декартово произведение Декартово произведения образуется , если: Опущено условие соединения.](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-55.jpg)
Декартово произведение
Декартово произведения образуется , если:
Опущено условие соединения.
Условие соединения недействительно.
Все строки
первой таблицы
соединяются со всеми строками второй
таблицы.
Во избежание получения декартова произведения предложение WHERE всегда должно включать допустимое условие соединения.
Слайд 57
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-56.jpg)
Слайд 58
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-57.jpg)
Слайд 59
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-58.jpg)
Слайд 60
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-59.jpg)
Слайд 61
![Различение столбцов с одинаковыми именами Для различения одноименных столбцов из](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-60.jpg)
Различение столбцов с одинаковыми именами
Для различения одноименных столбцов
из разных таблиц используются
префиксы
в виде имен таблиц.
Использование префиксов в виде имен
таблиц увеличивает
производительность.
Одноименные столбцы из разных
таблиц можно различать по их
псевдонимам.
Слайд 62
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-61.jpg)
Слайд 63
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-62.jpg)
Слайд 64
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-63.jpg)
Слайд 65
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-64.jpg)
Слайд 66
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-65.jpg)
Слайд 67
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-66.jpg)
Слайд 68
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-67.jpg)
Слайд 69
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-68.jpg)
Слайд 70
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-69.jpg)
Слайд 71
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-70.jpg)
Слайд 72
![Агрегирование данных с помощью групповых функций](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-71.jpg)
Агрегирование данных с помощью групповых функций
Слайд 73
![Темы Общие сведения об имеющихся групповых функциях Использование групповых функций](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-72.jpg)
Темы
Общие сведения об имеющихся групповых
функциях
Использование групповых функций
Вывод данных по группам с
помощью
предложения GROUP BY
Включение и исключение групп с помощью
предложения HAVING
Слайд 74
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-73.jpg)
Слайд 75
![Типы групповых функций AVG COUNT МАХ MIN STDDEV SUM VARIANCE](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-74.jpg)
Типы групповых функций
AVG
COUNT
МАХ
MIN
STDDEV
SUM
VARIANCE
Слайд 76
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-75.jpg)
Слайд 77
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-76.jpg)
Слайд 78
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-77.jpg)
Слайд 79
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-78.jpg)
Слайд 80
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-79.jpg)
Слайд 81
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-80.jpg)
Слайд 82
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-81.jpg)
Слайд 83
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-82.jpg)
Слайд 84
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-83.jpg)
Слайд 85
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-84.jpg)
Слайд 86
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-85.jpg)
Слайд 87
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-86.jpg)
Слайд 88
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-87.jpg)
Слайд 89
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-88.jpg)
Слайд 90
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-89.jpg)
Слайд 91
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-90.jpg)
Слайд 92
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-91.jpg)
Слайд 93
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-92.jpg)
Слайд 94
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-93.jpg)
Слайд 95
![Подзапросы Типы проблем, решаемых с помощью подзапросов Определение подзапросов Типы подзапросов Написание однострочных и многострочных подзапросов](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-94.jpg)
Подзапросы
Типы проблем, решаемых с помощью
подзапросов
Определение подзапросов
Типы подзапросов
Написание однострочных и
многострочных подзапросов
Слайд 96
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-95.jpg)
Слайд 97
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-96.jpg)
Слайд 98
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-97.jpg)
Слайд 99
![Указания по использованию подзапросов Подзапрос должен быть заключен в скобки.](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-98.jpg)
Указания по использованию подзапросов
Подзапрос должен быть заключен в скобки.
Подзапрос должен находиться
справа от
оператора сравнения.
Подзапрос не может содержать
предложение ORDER BY.
В однострочных подзапросах
используются однострочные операторы.
В многострочных подзапросах
используются многострочные операторы.
Слайд 100
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-99.jpg)
Слайд 101
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-100.jpg)
Слайд 102
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-101.jpg)
Слайд 103
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-102.jpg)
Слайд 104
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-103.jpg)
Слайд 105
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-104.jpg)
Слайд 106
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-105.jpg)
Слайд 107
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-106.jpg)
Слайд 108
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-107.jpg)
Слайд 109
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-108.jpg)
Слайд 110
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-109.jpg)
Слайд 111
![Многостолбцовые подзапросы Создание многостолбцовых подзапросов Поведение подзапросов при выборке неопределенных значений Включение подзапроса в предложение FROM](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-110.jpg)
Многостолбцовые подзапросы
Создание многостолбцовых
подзапросов
Поведение подзапросов при выборке
неопределенных значений
Включение подзапроса в предложение
FROM
Слайд 112
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-111.jpg)
Слайд 113
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-112.jpg)
Слайд 114
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-113.jpg)
Слайд 115
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-114.jpg)
Слайд 116
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-115.jpg)
Слайд 117
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-116.jpg)
Слайд 118
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-117.jpg)
Слайд 119
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-118.jpg)
Слайд 120
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-119.jpg)
Слайд 121
![Заключение Многостолбцовый подзапрос возвращает значения нескольких столбцов. Сравнение столбцов в](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-120.jpg)
Заключение
Многостолбцовый подзапрос возвращает
значения нескольких столбцов.
Сравнение столбцов в многостолбцовых
подзапросах может быть парным
и
непарным.
Многостолбцовый подзапрос может также
использоваться в предложении FROM
команды SELECT.
Слайд 122
![Манипулирование данными Описание команд DML Вставка строк в таблицы Обновление](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-121.jpg)
Манипулирование данными
Описание команд DML
Вставка строк в таблицы
Обновление строк в таблице
Удаление строк
из таблицы
Управление транзакциями
Слайд 123
![Язык манипулирования данными (DML) • Команды DML выполняются при следующих](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-122.jpg)
Язык манипулирования данными (DML)
• Команды DML выполняются при
следующих операциях:
Вставка новых строк в
таблицу
Изменение существующих строк в
таблице
Удаление существующих строк из
таблицы
* Транзакция - это совокупность команд
DML, образующих логическую единицу
работы.
Слайд 124
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-123.jpg)
Слайд 125
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-124.jpg)
Слайд 126
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-125.jpg)
Слайд 127
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-126.jpg)
Слайд 128
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-127.jpg)
Слайд 129
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-128.jpg)
Слайд 130
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-129.jpg)
Слайд 131
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-130.jpg)
Слайд 132
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-131.jpg)
Слайд 133
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-132.jpg)
Слайд 134
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-133.jpg)
Слайд 135
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-134.jpg)
Слайд 136
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-135.jpg)
Слайд 137
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-136.jpg)
Слайд 138
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-137.jpg)
Слайд 139
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-138.jpg)
Слайд 140
![Транзакции базы данных Сервер Oracle обеспечивает согласованность данных на основе](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-139.jpg)
Транзакции базы данных
Сервер Oracle обеспечивает согласованность данных на основе транзакций.
Транзакции
обеспечивают большую гибкость, более широкий спектр средств управления при изменении данных, а также согласованность данных в случае ошибки в пользовательском процессе или сбоя системы.
Слайд 141
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-140.jpg)
Слайд 142
![Преимущества команд COMMIT и ROLLBACK Обеспечивают согласованность данных. Позволяют проверить](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-141.jpg)
Преимущества команд COMMIT и ROLLBACK
Обеспечивают согласованность данных.
Позволяют проверить изменения в
данных прежде,
чем сделать их
постоянными.
Логически группируют взаимосвязанные
операции.
Слайд 143
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-142.jpg)
Слайд 144
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-143.jpg)
Слайд 145
![Состояние данных до выполнения команды COMMIT или ROLLBACK Предыдущее состояние](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-144.jpg)
Состояние данных до выполнения команды COMMIT или ROLLBACK
Предыдущее состояние данных может
быть
восстановлено, т.к. изменения производятся в
буфере базы данных.
Текущий пользователь может просмотреть
результаты своих операций DML с помощью
команды SELECT.
Другие пользователи не могут видеть ,
результаты команд DML, выполняемых
текущим пользователем.
Измененяемые строки блокируются, и другие
пользователи не могут обновлять их
содержимое.
Слайд 146
![Состояние данных после выполнения команды COMMIT Измененные данные записываются в](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-145.jpg)
Состояние данных после выполнения команды COMMIT
Измененные данные записываются в базу
данных.
Предшествующее состояние
данных теряется.
Все пользователи могут видеть результаты.
Измененные строки разблокируются, и другие
пользователи получают доступ к ним для
обработки данных.
Все точки сохранения стираются.
Слайд 147
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-146.jpg)
Слайд 148
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-147.jpg)
Слайд 149
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-148.jpg)
Слайд 150
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-149.jpg)
Слайд 151
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-150.jpg)
Слайд 152
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-151.jpg)
Слайд 153
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-152.jpg)
Слайд 154
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-153.jpg)
Слайд 155
![Создание таблиц и управление ими Главные объекты базы данных Создание](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-154.jpg)
Создание таблиц и управление ими
Главные объекты базы данных
Создание таблиц
Типы данных, которые
могут
использоваться в определениях
столбцов
Изменение определений таблиц
Удаление, переименование и
усечение таблиц
Слайд 156
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-155.jpg)
Слайд 157
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-156.jpg)
Слайд 158
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-157.jpg)
Слайд 159
![Ссылки на таблицы других пользователей Таблицы, принадлежащие другим пользователям, не](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-158.jpg)
Ссылки на таблицы других пользователей
Таблицы, принадлежащие другим
пользователям, не входят в схему
пользователя.
В
качестве префикса в имени таблицы
следует указать имя владельца.
Слайд 160
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-159.jpg)
Слайд 161
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-160.jpg)
Слайд 162
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-161.jpg)
Слайд 163
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-162.jpg)
Слайд 164
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-163.jpg)
Слайд 165
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-164.jpg)
Слайд 166
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-165.jpg)
Слайд 167
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-166.jpg)
Слайд 168
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-167.jpg)
Слайд 169
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-168.jpg)
Слайд 170
![Принципы поддержки целостности в реляционной модели данных поддержка структурной целостности](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-169.jpg)
Принципы поддержки целостности в реляционной
модели данных
поддержка структурной целостности
поддержка языковой целостности
поддержка ссылочной
целостности
поддержка семантической целостности.
Слайд 171
![поддержка структурной целостности реляционная СУБД должна допускать работу только с](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-170.jpg)
поддержка структурной целостности
реляционная СУБД должна допускать работу только с однородными структурами
данных типа «реляционное отношение» т.е.
отсутствие дубликатов кортежей,
соответственно обязательное наличие первичного ключа,
отсутствие понятия упорядоченности кортежей.
Слайд 172
![поддержка языковой целостности Реляционная СУБД должна обеспечивать языки описания и](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-171.jpg)
поддержка языковой целостности
Реляционная СУБД должна обеспечивать языки описания и манипулирования данными
не ниже стандарта SQL.
He должны быть доступны иные низкоуровневые средства манипулирования данными, не соответствующие стандарту.
Слайд 173
![поддержка ссылочной целостности кортежи подчиненного отношения уничтожаются при удалении кортежа](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-172.jpg)
поддержка ссылочной целостности
кортежи подчиненного отношения уничтожаются при удалении кортежа основного отношения,
связанного с ними.
кортежи основного отношения модифицируются при удалении кортежа основного отношения, связанного с ними, при этом на месте ключа родительского отношений ставится неопределенное Null значение.
Слайд 174
![Семантическая поддержка целостности. Семантическая поддержка может быть обеспечена двумя путями: Декларативным и процедурным путем.](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-173.jpg)
Семантическая поддержка целостности.
Семантическая поддержка может быть обеспечена двумя путями:
Декларативным и
процедурным путем.
Слайд 175
![Включение ограничений Ограничения обеспечивают декларативную поддержку целостности. Что такое ограничения? Создание и сопровождение ограничений](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-174.jpg)
Включение ограничений
Ограничения обеспечивают декларативную поддержку целостности.
Что такое ограничения?
Создание и сопровождение ограничений
Слайд 176
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-175.jpg)
Слайд 177
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-176.jpg)
Слайд 178
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-177.jpg)
Слайд 179
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-178.jpg)
Слайд 180
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-179.jpg)
Слайд 181
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-180.jpg)
Слайд 182
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-181.jpg)
Слайд 183
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-182.jpg)
Слайд 184
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-183.jpg)
Слайд 185
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-184.jpg)
Слайд 186
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-185.jpg)
Слайд 187
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-186.jpg)
Слайд 188
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-187.jpg)
Слайд 189
![Пример Оператор создания таблицы BOOKS из базы данных «Библиотека». Бизнес-правила:](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-188.jpg)
Пример
Оператор создания таблицы BOOKS из базы данных «Библиотека».
Бизнес-правила:
Шифр книги — последовательность
символов длиной не более 14, однозначно определяющая книгу, значит, это — фактически первичный ключ таблицы BOOKS.
Название книги — последовательность символов, не более 120. Обязательно должно быть задано.
Автор — последовательность символов, не более 30, может быть не задан.
Соавтор — последовательность символов, не более 30, может быть не задан.
Год издания — целое число, не менее 1960 и не более текущего года. По умолчанию ставится текущий год.
Издательство — последовательность символов, не более 20, может отсутствовать.
Количество страниц — целое число не менее 5 и не более 1000.
Слайд 190
![Оператор](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-189.jpg)
Слайд 191
![Дополнительное ограничение для таблицы](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-190.jpg)
Дополнительное ограничение для таблицы
Слайд 192
![Именованные ограничения Для анализа ошибок целесообразно именовать все ограничения, особенно](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-191.jpg)
Именованные ограничения
Для анализа ошибок целесообразно именовать все ограничения, особенно если таблица
содержит несколько ограничений одного типа.
Для именования ограничений используется ключевое слово CONSTRAINT
Слайд 193
![Создание BOOKS с именованными ограничениями](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-192.jpg)
Создание BOOKS с именованными ограничениями
Слайд 194
![Таблица READERS: Номер читательского билета - это целое число в](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-193.jpg)
Таблица READERS:
Номер читательского билета - это целое число в пределах 32
000 и он уникально определяет читателя.
Имя, фамилия читателя — это последовательность символов, не более 30.
Адрес — это последовательность символов, не более 50.
Номера телефонов рабочего и домашнего — последовательность символов, не более 12.
Дата рождения — календарная дата. В библиотеку принимаются читатели не младше 17 лет.
Слайд 195
![Оператор](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-194.jpg)
Слайд 196
![Таблица Examplar](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-195.jpg)
Слайд 197
![Порядок создания таблиц В нашем примере с библиотекой порядок описания таблиц следующий:](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-196.jpg)
Порядок создания таблиц
В нашем примере с библиотекой порядок описания таблиц следующий:
Слайд 198
![Средства определения схемы базы данных В СУБД ORACLE база данных](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-197.jpg)
Средства определения схемы
базы данных
В СУБД ORACLE база данных создается в ходе
установки программного обеспечения собственно СУБД. Все таблицы пользователей помещаются в единую базу данных.
Однако они могут быть разделены на группы, объединенные в подсхемы.
Понятие подсхемы не стандартизировано в SQL и не используется в других СУБД.
Слайд 199
![Семантическое обеспечение целостности данных Процедуры и триггеры](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-198.jpg)
Семантическое обеспечение целостности данных
Процедуры и триггеры
Слайд 200
![Хранимые процедуры Хранимые процедуры пишутся на специальном встроенном языке программирования,](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-199.jpg)
Хранимые процедуры
Хранимые процедуры пишутся на специальном встроенном языке программирования, они могут
включать любые операторы SQL, а также включают некоторый набор операторов, управляющих ходом выполнения программ
Слайд 201
![Синтаксис CREATE [ OR REPLACE] ( “аргумент” IN | OUT](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-200.jpg)
Синтаксис
CREATE [ OR REPLACE]
( “аргумент” IN | OUT |
IN OUT “Тип данных” [,..])
IS | AS
“Тело процедуры PL/SQL”
Слайд 202
![Функция получения ip-адреса create or replace function client_ip_address return varchar2 is begin return dbms_standard.client_ip_address; end;](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-201.jpg)
Функция получения ip-адреса
create or replace function client_ip_address
return varchar2 is
begin
return dbms_standard.client_ip_address;
end;
Слайд 203
![Пример процедуры create or replace procedure update_debtsis Begin update computation](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-202.jpg)
Пример процедуры
create or replace procedure update_debtsis
Begin
update computation c set n_pay=(select sum(n_sum)
from payment
where n_client=clients.n_client and d_pay between dates.d_computation and add_months(dates.d_computation,1))
end update_debts;
Слайд 204
![Триггеры Фактически триггер — это специальный вид хранимой процедуры, которую](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-203.jpg)
Триггеры
Фактически триггер — это специальный вид хранимой процедуры, которую SQL Server
вызывает при выполнении операций модификации соответствующих таблиц.
Триггер автоматически активизируется при выполнении операции, с которой он связан.
Триггеры связываются с одной или несколькими операциями модификации над одной таблицей.
Слайд 205
![два типа триггеров В СУБД Oracle определены два типа триггеров:](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-204.jpg)
два типа триггеров
В СУБД Oracle определены два типа триггеров:
триггеры, которые
могут быть запущены перед реализацией операции модификации, они называются BEFORE-триггерами,
и триггеры, которые активизируются после выполнения соответствующей модификации, аналогично триггерам MS SQL Server, — они называются AFTER-триггерами.
Слайд 206
![Синтаксис CREATE [ OR REPLACE] TRIGGER BEFORE | AFTER ON](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-205.jpg)
Синтаксис
CREATE [ OR REPLACE] TRIGGER <имя_триггера> BEFORE | AFTER
ON <имя_таблицы>
FOR
{ [INSERT] [,UPDATE] [, DELETE] }
FOR EACH ROW
WHEN (условие)
AS
SQL-операторы (Тело триггера)
Слайд 207
![Пример1 create or replace trigger add_author AFTER INSERT OR UPDATE](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-206.jpg)
Пример1
create or replace trigger add_author AFTER
INSERT OR UPDATE OF C_AUTHOR
ON
T_CLAUSES
FOR EACH ROW
DECLARE
id_cl int;
aut varchar2(500);
res int;
BEGIN
id_cl := :new.N_ID_CL;
aut := :new.C_AUTHOR;
res := ANALIZ_AUT(id_cl, aut);
END;
Слайд 208
![Пример2 create or replace trigger "BI_COMPUTATION" before insert on "COMPUTATION"](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/2012/slide-207.jpg)
Пример2
create or replace trigger "BI_COMPUTATION"
before insert on "COMPUTATION"
for each
row
begin
select "COMPUTATION_SEQ".nextval into :NEW.N_COMPUTATION
from dual;
:NEW.D_COMPUTATION := SYSDATE();
end;