- •Лабораторная работа № 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 Тема: создание индексов
- •Типы индексов
- •Создание индекса
- •Просмотр индексов
- •Удаление индекса
Использование арифметических операторов с датами
Поскольку даты в базе данных хранятся в виде чисел, с помощью арифметических операторов можно выполнять с ними такие операции, как сложение и вычитание. Прибавлять и вычитать можно не только даты, но и числовые константы.
Арифметические операторы над датами
Операция |
Результат |
Описание |
дата + число |
дата |
Прибавление количества дней к дате |
дата – число |
дата |
Вычитание количества дней из даты |
дата – дата |
кол-во дней |
Вычитание одной даты из другой |
дата + число/24 |
дата |
Прибавление к дате часов. |
Пример.
Вывод номера фильма и длительность использования кассеты клиентом с номером фильма 11.
SQL> select filmid, (sysdate-vidacha) дней
2 from dogovor
3 where filmid = 11;
FILMID DNI
---------- ----------
11 140,301956
Функции для работы с датами
Эти функции работают с датами Oracle. Все Функции для работы с датами возвращают значение типа DATE, кроме функции MONTHS_BETWEEN, которая возвращает целое значение.
Функция |
Назначение |
MONTHS_BETWEEN(дата1, дата2) |
Определение количества месяцев, разделяющих даты дата1 и дата2. Результат может быть положительным или отрицательным. Если дата1 позже даты2, результат положителен, а если дата1 более ранняя, чем дата2, результат отрицателен. Дробная часть результата представляет собой долю месяца. |
ADD_MONTHS (дата, п) |
К дате прибавляется n календарных месяцев; число п должно быть целым, но может быть отрицательным. |
NEXT_DAY (дата, 'символ') |
Определение даты ближайшего дня недели, заданного 'символом', после указанной даты. Аргумент 'символ' может задавать порядковый номер или название дня недели. |
LAST_DAY (дата) |
Определение последнего дня (даты) месяца, содержащего заданную дату. |
ROUND(дата [,'fmf]) |
При отсутствии аргумента 'fmt' округляет до даты на момент полуночи (до целого числа суток). Если fmt= YEAR, определяет первый день года. Функция полезна для сравнения дат с разным временем суток. |
TRUNC(дата [,'fmt']) |
Если модель формата 'fmt' не задана, функция возвращает первый дня месяца, указанного в аргументе дата. Если fmt = YEAR, функция возвращает дату первого дня года, содержащего указанную дату. Функция полезна для отбрасывания части даты, содержащей время. |
Пример.
Вывод номера фильма, даты выдачи кассеты, длительность использования кассеты клиентом в месяцах и даты возврата кассеты.
SQL> select filmid, vidacha,
2 MONTHS_BETWEEN(SYSDATE, vidacha) MONTHES,
3 ADD_MONTHS(vidacha,6) VOZVRAT
4 from dogovor;
FILMID VIDACHA MONTHES VOZVRAT
---------- -------- ---------- -------- -----------------------
11 01.01.03 4,65516017 01.07.03
Функции ROUND и TRUNC могут применяться к числовым значениям и датам. Если они используются для дат, то округление или усечение значений производится в соответствии с заданной моделью формата. Следовательно, можно округлять даты до целого года или месяца.