
- •Лабораторная работа № 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 Тема: создание индексов
- •Типы индексов
- •Создание индекса
- •Просмотр индексов
- •Удаление индекса
Пример.
Вывод названий фильмов и дат и дат их выпуска, в 1991 году. Вывод дат должен производиться в формате типа "7 February 1991".
SQL> select namef, to_char (god_vip, 'fmDD "of Mounth YYYY') Date1
2 from film
3 where god_vip like '%91';
NAMEF DATE1
------------------------- ------------------
Дом 17 of Mounth 1991
Элементы формата числа
Для вывода символьных строк, содержащих цифры, используются следующие элементы формата:
Элемент |
Описание |
Пример |
Результат |
9 |
Числовая позиция (число девяток определяет ширину поля вывода) |
999999 |
1234 |
0 |
Вывод ведущих нулей |
099999 |
001234 |
$ |
Плавающий знак доллара |
$999999 |
$1234 |
L |
Плавающий знак местной валюты |
L999999 |
FF1234 |
.
|
Задает наличие в данной позиции десятичной точки |
999999.99 |
1234.00 |
, |
Ставит запятую в заданной позиции |
999,999 |
1,234 |
MI |
Знак минус справа (для отрицательных значений) |
1234- |
|
PR |
Заключение отрицательных значений в скобки |
999999 |
<1234> |
ЕЕЕЕ |
Научный формат (должен быть задан четырьмя символами 'Е'). |
99.999ЕЕЕЕ |
1.234Е+03 |
V |
Умножить на 10 n раз (n = число символов "9" после V) |
9999V99 |
123400 |
В |
Вывод нулевых значений пробелами вместо нулей |
В9999.99 |
1234.00 |
Пример.
Вывод сообщения о стоимости проката фильма с указанным номером для каждого фильма, выпущенного позже 1 января 1987.
SQL> select 'Фильм' || ' ' || TO_CHAR(filmID),
2 'Сдается в прокат по цене ',
3 TO_CHAR(stoimost_prok, 'fm99') NOTE
4 from film
5 WHERE god_vip>'01.01.1987';
Функции TO_NUMBER и TO_DATE
Функции TO_NUMBER и TO_DATE преобразовывают строку символов в числовой формат или формат даты.
Пример.
Вывод фильмов с датой выпуска 12 марта 1988 года. Символьная строка с датой преобразуется в формат даты.
SQL> select filmid, namef, god_vip
2 from film
3 where god_vip = TO_DATE('Февраль 1, 2002', 'Month dd, YYYY');
FILMID NAMEF GOD_VIP
---------- ------------------------- --------
3 Азазель 01.02.02
Пример.
Вывод под заголовком "Фильм" названия каждого фильма, начинающиеся с буквы «К», заглавными буквами, и фамилии режиссера строчными.
SQL> SELECT CONCAT(UPPER(namef),LOWER(regiser)) "Фильм"
2 FROM film
3 WHERE namef LIKE 'К%';
Фильм
---------------------------------------------
КРАСОТКАполански
КУКЛА такеши китано
КРАСНЫЙ ДРАКОН
Пример.
Вывод названий фильмов, у которых не указан режиссер. Выходная строка должна указывать, что для этого фильма режиссер не указан.
SQL> select namef,
2 NVL (TO_CHAR(regiser), 'Режиссер не указан')
3 FROM film
4 WHERE regiser IS NULL;
NAMEF NVL(TO_CHAR(REGISER)
------------------------- --------------------
Азазель Режиссер не указан
Ва-банк Режиссер не указан
Красный дракон Режиссер не указан
Пример.
Вывод даты следующей пятницы, отстоящей на шесть месяцев от даты выпуска фильма. Выходная дата должна иметь следующий вид: Февраль, Март 12th, 1999.
SQL> SELECT TO_CHAR(NEXT_DAY(ADD_MONTHS(god_vip,6), 'ПЯТНИЦА'),
2 'fmDAY, Month, ddth, YYYY')
3 "Через 6 месяцев будет:"
4 FROM film
5 WHERE regiser IS NULL;
Через 6 месяцев будет:
---------------------------------
ПЯТНИЦА, Август, 2nd, 2002
ПЯТНИЦА, Сентябрь, 6th, 1985
ПЯТНИЦА, Сентябрь, 16th, 1988
Лабораторная работа № 6.
Тема: ВЫБОРКА ДАННЫХ ИЗ НЕСКОЛЬКИХ ТАБЛИЦ
Если условие соединения недействительно или опущено, результатом запроса будет декартово произведение двух таблиц, включающее все комбинации строк. Все строки первой таблицы соединяются со всеми строками второй таблицы. Если вывод всех комбинаций строк не требуется, следует использовать предложение WHERE с допустимым условием соединения.
SQL> SELECT NAMEF, FIO
2 FROM FILM, KLIENT;
28 строк выбрано.
Простой запрос с соединением
Для отображения данных из двух или более связанных таблиц необходимо задать простое условие соединения в предложении WHERE.
Синтаксис
SELECT таблица.столбец, таблица.столбец
FROM таблица1, та блица 2
WHERE таблица1.столбец1 = таблица2.столбец2
где таблица, столбец таблица и столбец, из которых производится выборка
таблица1,столбец1= условие, соединяющее таблицы (или задающее их таблица.2. столбец2 взаимосвязь)
Пример.
Соединение таблиц KLIENT и FILM для вывода названия фильмов и фамилии клиентов, взявших фильмы на прокат.
SQL> SELECT FILM.NAMEF "Film", FIO
2 FROM FILM, KLIENT, DOGOVOR
3 WHERE FILM.FILMID=DOGOVOR.FILMID AND
4 KLIENT.KLIENTID=DOGOVOR.KLIENTID;
Film FIO
------------------------- -------------------------
Красный дракон Иванов И.Н.
Использование псевдонимов таблиц
Различение столбцов с помощью имен таблиц может отнимать очень много времени - особенно, если имена у таблиц длинные. Поэтому вместо имен используются псевдонимы таблиц. Аналогично псевдонимам столбцов псевдонимы таблиц позволяют присвоить таблице другое имя для конкретного предложения SELECT. Употребив псевдоним таблицы один раз, необходимо продолжать его использовать для квалификации каждого столбца.
Пример.
Вывод названия фильмов и фамилий клиентов, взявших на прокат фильмы. Используются псевдонимы столбцов, а для упрощения ссылок на таблицы - псевдонимы таблиц.
SQL> SELECT f.NAMEF "Film", k.FIO
2 FROM FILM f, KLIENT k, DOGOVOR d
3 WHERE f.FILMID=d.FILMID AND
4 k.KLIENTID=d.KLIENTID;
Псевдонимы таблиц могут содержать до тридцати символов, но чем они короче, тем лучше.
Если псевдоним таблицы используется для указания таблицы в предложении FROM, этот же псевдоним должен использоваться вместо имени этой таблицы во всем предложении SELECT.
Следует выбирать осмысленные псевдонимы.
Действие псевдонима таблицы распространяется лишь на текущую команду SELECT.