
- •Лабораторная работа № 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 Тема: создание индексов
- •Типы индексов
- •Создание индекса
- •Просмотр индексов
- •Удаление индекса
1 Строка обновлена.
FILMID STOIMOST_PROK KOL
SQL>
update film ---------- -------------------------- ---------------
2 set kol = 4, Stoimost_prok = 30 2 30 4
3 where filmid=2; 1 30 3
1 строка обновлена.
Пример.
Ввод данных о назначении стоимости проката фильмов 40 р. Убедиться в том, что изменения произведены успешно.
SQL> update film
2 set Stoimost_prok = 40;
6 строк обновлено.
SQL> select filmid, stoimost_prok
2 from film;
FILMID STOIMOST_PROK
---------------- -------------------------
1 40
2 40
… …
8 40
6 строк выбрано.
Пример
Если указанное вами значение не существует в родительской таблице, выдается сообщение о том, что "родительский ключ" не обнаружен, что является нарушением ограничения.
SQL> update dogovor
2 set filmid=15
3 where filmid = 1;
update dogovor
*
ошибка в строке 1:
ORA-02291: нарушено ограничение целостности (USER32.FILMID_FK) – исходный ключ не найден
Удаление строк
Синтаксис
DELETE FROM таблица
[WHERE условие];
где: |
таблица |
имя таблицы. |
|
условие |
задает строки, которые необходимо удалить, и состоит из имен столбцов, выражений, констант, подзапросов и операторов сравнения. |
Пример.
Удаление информации о договоре, заключенном после 1 февраля 2003 года:
SQL> delete from dogovor
2 where vidacha >
3 TO_Date('01.02.2003','dd.mm.yyyy');
1 строка удалена.
Если команда DELETE не содержит предложения WHERE, удаляются все строки таблицы.
Транзакции
Совокупность команд DML, результаты действия которых еще не стали постоянными, называется транзакцией или логической единицей работы. Транзакция начинается, когда сервер Oracleполучает первую исполняемую командуSQL, и заканчивается, когда происходит одно из следующих событий:
Команда COMMIT или ROLLBACK.
Команда DDL (например, CREATE) или команда DCL.
Обнаружение определенных ошибок - например, взаимной блокировки.
Завершение сеанса работы в SQL*Plus пользователем.
Аппаратный сбой или аварийный останов системы.
После завершения одной транзакции следующее выполняемое предложение SQL автоматически начинает следующую транзакцию.
Результаты выполнения команд DDL и DCL (см. таблица 1) фиксируются автоматически.
Команды явного управления транзакциями
Команда |
Описание |
COMMIT |
Завершает текущую транзакцию, делая постоянными все произведенные изменения данных. |
SAVEPOINT имя |
Устанавливает в текущей транзакции маркер точки сохранения (savepoint). |
ROLLBACK[TO SAVEPOINT имя] |
Прекращает текущую транзакцию, отменяя все произведенные изменения в данных. |
Команды неявной обработки транзакций
Статус |
Причина |
Автоматическая фиксация
|
Команда DDL или DCL. |
Нормальное завершение сеанса работы в SQL*Plus без явной команды COMMIT или ROLLBACK. | |
Автоматический откат |
Аварийное прекращение сеанса работы в SQL*Plus или системный сбой. |
Пример.
Создание нового фильма. Все изменения данных становятся постоянными.
SQL> insert into film(filmid, namef, god_vip)
2 values( 11, 'Красный дракон','12.03.1988');
1 строка создана.
SQL> COMMIT;
Фиксация обновлений завершена.
Пример.
Во время удаления записи из таблицы dogovor случайно стерты все данные этой таблицы. Ошибка исправляется, посылается правильная команда, и изменения фиксируются.
SQL> delete from dogovor;
1 строка удалена.
SQL> rollback;
Откат завершен.
SQL> COMMIT;
Фиксация обновлений завершена
Пример.
Увеличение
на 5 процентов стоимости проката кассет,
количество копий которых меньше 4.
Создается
точка
сохранения
UPDATE_DONE.
SQL> update film FILMID NAMEF
2 set stoimost_prok = stoimost_prok*1.05 ---------- -------------------------
3 where kol<4; 55 Filname
2 строк обновлено.
SQL> savepoint update_done; SQL> rollback to update_done;
Точка отката создана. Откат завершен
SQL> insert into film (filmid, namef) SQL> select filmid, namef
2 values (55, 'Filname'); 2 from film
1 строка создана. 3 where filmid=55;
строки не выбраны
SQL> select filmid, namef
2 from film
3 where filmid=55;
Лабораторная работа №3
Тема: ВЫБОРКА СТРОК
Основной блок запроса
Синтаксис
SELECT [DISTINCT] {*, столбец [псевдоним], ....}
FROM таблица;
где: SELECT Список, включающий, по крайней мере, один столбец.
DISTINCT Подавляет выборку дубликатов.
* Выбирает все столбцы.
Столбец Выбирает заданный столбец.
Псевдоним Дает выбранным столбцам другие заголовки.
FROM таблица Указывает таблицу, содержащую столбцы.
Выборка всех столбцов и строк.
Пример.
Вывод содержимого всех столбцов и строк таблицы KLIENT.
SQL> SELECT * |
|
2 FROM KLIENT; |
|
KLIENTID FIO PHONE
-------------------------------------------------------------
1 Иванов И.Н. 9005363
2 Петров Н.О 7854458
3 Сидоров О.Г. 4455478
Выборка заданных столбцов
Вывод можно ограничить столбцами, имена которых указаны через запятую в предложении SELECT.
Пример.
Вывод всех фамилий клиентов и их телефонных номеров из таблицы KLIENT.
SQL> SELECT FIO, PHONE
2 FROM KLIENT;
FIO PHONE
--------------------------------------
Иванов И.Н. 9005363
Петров Н.О 7854458
Сидоров О.Г. 4455478
Пример.
Использование оператора умножения для вывода общей стоимости партии.
SELECT NAMEF, STOIMOST_PROK * KOL
2 FROM FILM;
NAMEF STOIMOST_PROK * KOL
------------------------------------------------------------------------------
Красотка 126
Дом 160
Азазель 200
Ва-банк 126
Куклы
…
6 строк выбрано.
Псевдонимы столбцов
Псевдоним указывается в списке команды SELECT сразу за именем столбца и отделяется от него пробелом. По умолчанию такие альтернативные заголовки выводятся в символах верхнего регистра и не могут содержать пробелов, если псевдоним не заключен в кавычки (" ").
Пример.
Вывод фамилии клиентов, общей стоимости партии. общей стоимости партии вычисляется путем перемножения стоимости проката и количества. Назвать столбец STOIMOST_VSEGO.
SELECT NAMEF, STOIMOST_PROK * KOL AS STOIMOST_VSEGO
2 FROM FILM;
SELECT NAMEF, STOIMOST_PROK * KOL “Стоимость всего”
2 FROM FILM;