- •Лабораторная работа № 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 Тема: создание индексов
- •Типы индексов
- •Создание индекса
- •Просмотр индексов
- •Удаление индекса
Указание имен столбцов, выражений и текстовых строк во время выполнения
Подстановка переменных может использоваться не только в предложении WHERE команды SQL, но и для подстановки имен столбцов, выражений и текстовых строк.
Пример.
Вывод названия фильма, любого другого столбца и любого условия. Попробуйте разные условия и имена столбцов и сравните результаты.
SQL> select namef, &column_name
2 from film
where &condition;
Введите значение для column_name: kol
Введите значение для condition: namef='Красотка'
NAMEF KOL
------------------------- -------------
Красотка 3
select namef, &column_name
from film
where &condition;
Введите значение для column_name: stoimost_prok
Введите значение для condition: kol>4
NAMEF STOIMOST_PROK
------------------------- -------------
Азазель 40
Звонок 35
Определение переменных пользователя
Задать переменные можно до выполнения команды SELECT. Для определения и установки значений переменных SQL*Plus предлагает две команды - DEFINE и ACCEPT.
Команда |
Описание |
DEFINE переменная = значение |
Создание переменной типа CHAR и присвоение ей значения. |
DEFINE переменная |
Вывод переменной, ее значения и типа данных. |
DEFINE |
Вывод всех переменных пользователя, их значений и типа данных. |
ACCEPT (синтаксис см. ниже) |
Чтение строки, введенной пользователем, и сохранение ее в переменной. |
Синтаксис
ACCEPT переменная [тип_данных] [FORMAT] [PROMPT текст] [HIDE]
где: переменная
тип_данных
FOR[MAT]
PROMPT текст
HIDE |
имя переменной, где хранится значение. Если переменная не существует, SQL*Plus ее создает.
NUMBER, CHAR или DATE, Максимальная длина для типа CHAR - 240 байтов. DATE сверяется с моделью формата.
модель формата - например, А10 или 9.999.
текст, который выдается прежде, чем пользователь может ввести значение.
Предотвращает отображение данных, введенных пользователем - например, пароля. |
Если для определения переменной используется команда ACCEPT, амперсант перед параметром подстановки не ставится
Пример.
Вывод режиссера и даты возврата фильма для заданного фильма. Создайте командный файл под названием primer.sql и используйте команду ACCEPT для настройки приглашения к вводу данных.
set echo off
accept a_regiser prompt 'Введите фамилию режиссера: '
select f.regiser, d.vozvrat
from film f, dogovor d
where f.filmid=d.film.id
and upper(f.regiser) like upper('%& a_regiser %')
/
set echo on
SQL> START primer
Введите фамилию режиссера: пола
От переменной ECHO зависит, печатают ли команды START и @ каждую команду командного файла по мере ее выполнения. В случае ECHO ON команда печатается, а в случае ECHO OFF - нет.
Переменная сохраняет свое значение до:
очистки командой UNDEFINE;
выхода из SQL*Plus.
Отменив определение переменной, можно проверить произведенное изменение с помощью команды DEFINE. При выходе из SQL*Plus переменные, заданные во время сеанса, теряются. Для сохранения переменных от сеанса к сеансу измените свой файл login, sql так, чтобы эти переменные инициализировались сразу после загрузки системы.
Пример.
Создание переменной для хранения фамилий режиссера и их.
SQL> define a_regiser=”пола”
SQL> define a_regiser
Создано a_regiser=”пола” (char).
SQL> select regiser
from film
where lower(regiser)=’& a_regiser’;
Regiser
---------------
Полански
SQL> undefine a_regiser
SQL> define a_regiser
Переменная a_regiser очищена.