- •Лабораторная работа № 1 Тема: создание таблиц
- •Ссылка на таблицы других пользователей
- •Параметр default
- •Правила присвоения имен
- •Типы данных в Oracle
- •Ограничения
- •Ограничения целостности данных
- •Ограничение not null
- •Ограничение unique
- •Ограничение primary key
- •Ограничение foreign key
- •Ограничение check
- •Пример. Создание таблицы базы данных Film, Klient, Dogovor.
- •6 Regiser varchar2(20), Таблица создана.
- •Создание таблицы с заполнением строками из другой таблицы
- •Лабораторная работа №2
- •2 Values (1, 'Красотка', 'Поланский','12-12-1987', 30, 2);
- •1 Строка создана.
- •1 Строка создана. Копирование строк из другой таблицы
- •Insert into таблица (столбец[, столбец]}
- •3 Строки создано.
- •Обновление строк
- •1 Строка обновлена.
- •Команды явного управления транзакциями
- •Оператор конкатенации
- •Строки символов (литералы)
- •Обработка неопределенных значений
- •Функция nvl
- •Синтаксис
- •7 Строк выбрано. Преобразование nvl для различных типов
- •Лабораторная работа №4 Тема: ограничение количества выбираемых строк.
- •Азазель 40 5
- •7 Строк выбрано.
- •1 Иванов и.Н. 005363
- •Пример. Вывод названия фильмов и стоимости проката для фильмов, количество которых 3 и 5.
- •Сочетание символов в искомой строке
- •Строки не выбраны
- •2 From film 3 Азазель
- •Пример. Вывод кодов фильмов и их названий, имеющих режиссера.
- •Порядок выполнения операций Правила приоритета
- •1 Красотка 42 3
- •Пример.
- •Пример.
- •Числовые функции
- •Пример.
- •Использование арифметических операторов с датами
- •Арифметические операторы над датами
- •Функции для работы с датами
- •Пример.
- •Функции преобразования
- •Вывод даты в заданном формате
- •Форматы времени
- •Пример.
- •Элементы формата числа
- •Пример.
- •Лабораторная работа №7 Тема: групповые функции Групповые функции
- •Групповые функции
- •Пример. Вывод первого и последнего названия фильма из алфавитного списка всех фильмов.
- •8 Строк выбрано.
- •Предложение having
- •Пример.
- •Лабораторная работа №8 Тема: подзапросы
- •From таблица
- •(Select список_выбора
- •Однострочные подзапросы
- •Многострочные подзапросы
- •Лабораторная работа №9 Тема определение переменных во время выполнения Переменные подстановки с одним амперсантом
- •Команда set verify
- •Определение текстовых строк и дат с помощью переменных подстановки
- •Указание имен столбцов, выражений и текстовых строк во время выполнения
- •Определение переменных пользователя
- •Лабораторная работа №10 Тема: изменение таблиц и ограничений Добавление столбца
- •Изменение столбца
- •Добавление и удаление ограничений
- •Разрешение и запрет ограничений
- •Удаление таблицы
- •Команда rename:
- •Команда truncate: Синтаксис
- •Усечение таблицы.
- •Добавление комментариев к таблице
- •Лабораторная работа №11 Тема: создание последовательности
- •Создание последовательности
- •Проверка параметров последовательности
- •10 Строк выбрано. Псевдостолбцы nextval и currval
- •Пропуски в последовательности
- •Просмотр следующего свободного значения без его увеличения
- •Изменение параметров последовательности
- •Лабораторная работа № 12. Тема: словарь данных.
- •Запросы к словарю данных
- •Классы представлений
- •Прочие представления
- •Лабораторная работа № 13. Тема: создание представлений
- •2 As select filmId, namef, god_vip Дата_выпуска
- •13 Куклы 13.05.99
- •2 (Номер, Название, Дата)
- •2 (ИмяКлиента, посл_Выдача, Перв_выдача)
- •2 (Номер, Название, Дата)
- •Удаление представления
- •Лабораторная работа №14 Тема: создание индексов
- •Типы индексов
- •Создание индекса
- •Просмотр индексов
- •Удаление индекса
2 (Номер, Название, Дата)
3 as select filmID, namef, god_vip
4 from film
5 where god_vip > '01.01.1989';
Представление создано.
Пример
Создание представления, содержащего названия отделов, а также минимальную, максимальную и среднюю заработную плату по каждому отделу. Вывод на экран структуры представления и его содержимого.
SQL> create view dogov
2 (ИмяКлиента, посл_Выдача, Перв_выдача)
3 as select k.FIO, MAX(vidacha), min(vidacha)
4 from klient k, dogovor d
5 group by k.FIO;
Представление создано.
SQL> select * from dogov;
ИМЯКЛИЕНТА ПОСЛ_ВЫД ПЕРВ_ВЫД
------------------------- -------- ----------------------------------
Иванов И.Н. 12.03.03 01.01.03
Петров Н.О. 12.03.03 01.01.03
Сидоров О.Г. 12.03.03 01.01.03
SQL> desc dogov
Имя Пусто? Тип
----------------------------------------- -------- ---------------------
ИМЯКЛИЕНТА VARCHAR2(25)
ПОСЛ_ВЫДАЧА DATE
ПЕРВ_ВЫДАЧА DATE
Операции DML могут выполняться над представлениями в соответствии со следующими правилами:
Удаление строки из представления возможно, если представление не содержит ничего из следующего: условие соединения, групповые функции, предложение GROUP BY, команда DISTINCT.
Данные в представлении могут быть изменены, если представление не содержит ничего из вышеперечисленного и ничего из следующего списка: cтолбцы, описанные как выражения, например, stoimost_prok*kol, псевдостолбец.
Добавление данных через представление возможно, если оно не содержит ничего из вышеперечисленного и если в базовой таблице нет столбцов типа NOT NULL, не включенных в представление. Все необходимые значения должны присутствовать в представлении. Помните, что через представление вы добавляете значения прямо в основную таблицу.
Пример.
Создайте представление, которое содержит все столбцы таблицы FILM, где количество копий кассет равно 3. Включите предложение WITH CHECK OPTION.
SQL> Create or replace view films
2 AS select *
3 from film
4 Where kol=3
5 with check option constraint films_ch;
Представление создано.
Через представление попробуйте изменить количество копий кассет для фильма номер 4. Новое количество кассет - 2.
SQL> update films
2 set kol = 2
3 where filmid=4;
update films
*
ошибка в строке 1:
ORA-01402: представление WITH CHECK OPTION не соответствует фразе WHERE
Ни одна строка не была изменена, потому что, если бы количество кассет было изменено на 2, представление уже не могло бы "видеть" этот фильм. Следовательно, если задано условие WITH CHECK OPTION, в представлении могут быть представлены фильмы с количеством копий кассет = 2, и изменить количество кассет для этих фильмов через представление невозможно.
Если выполнение операций DML через представления было невозможно, создаем режим WITH READ ONLY.
Пример.
Измените представления films. Запретите выполнения через него операций DML. Попытайтесь удалить строку из представления.
SQL> Create or replace view films