- •Лабораторная работа № 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 Тема: создание индексов
- •Типы индексов
- •Создание индекса
- •Просмотр индексов
- •Удаление индекса
Многострочные подзапросы
Подзапросы, возвращающие более одной строки, называются многострочными. В них следует использовать не однострочный, а многострочный оператор - например, IN. Оператор IN ожидает одного или нескольких значений.
Пример.
Вывод списка фильмов и стоимости их проката, приобретенные клиентами с номерами меньше 3.
SQL> select namef, stoimost_prok
2 from film
3 where filmID IN
4 (select filmID
5 from dogovor
6 where klientID<3);
NAMEF STOIMOST_PROK
------------------------- -------------
Красотка 42
Красный дракон
Подзапросы можно использовать не только в предложении WHERE, но и в предложении HAVING.
Пример.
Вывод списка всех фильмов, где средняя стоимость проката меньше, чем у фильма “Звонок”.
SQL> select namef, avg(stoimost_prok)
2 from film
3 group by namef
4 having AVG(stoimost_prok)<
5 (select stoimost_prok
6 from film
7 where namef = 'Звонок');
NAMEF AVG(STOIMOST_PROK)
------------------------- ------------------
Азазель 40
Дом 40
Куклы 30
Ледниковый период 40
Лабораторная работа №9 Тема определение переменных во время выполнения Переменные подстановки с одним амперсантом
При создании отчетов пользователь часто заинтересован в динамическом ограничении объема выходных данных. SQL*Plus обеспечивает такую гибкость через переменные пользователя. Задать переменные в своих командах SQL можно с помощью амперсанта (&). Присваивать значение каждой переменной при этом не требуется.
Пример |
Описание |
&переменная |
Переменная в команде SQL; если переменная не существует, SQL*Plus просит пользователя ввести значение. SQL*Plus не сохраняет переменную после ее использования. |
Пример.
Создание команды, которая во время выполнения запрашивает код фильма у пользователя. Отчет должен содержать название фильма и режиссера.
SQL> select namef, regiser
2 from film
3 where filmid=&Cod_filma;
Введите значение для cod_filma:
NAMEF REGISER
------------------------- --------------------
Красотка Полански
Команда set verify
Чтобы убедиться в том, что команда SQL изменена, используйте команду SET VERIFY SQL*Plus. Режим ON команды SET VERIFY позволяет вывести на экран текст команды до и после подстановки значений переменных.
Определение текстовых строк и дат с помощью переменных подстановки
Текстовые строки и даты в предложении WHERE должны быть заключены в апострофы. Это же правило распространяется и на переменные подстановки.
Чтобы не вводить апострофы во время выполнения, рекомендуется заключать в них переменную в самой команде SQL.
Пример.
Выборка номера, фамилии и размера заработной платы служащих, находящихся на конкретной должности. Должность запрашивается во время выполнения.
SQL> select filmid, regiser
2 from film
3 where namef='&Nazvanie_filma';
Введите значение для nazvanie_filma: Красотка