- •Операторы сравнения значений
- •Insert into table-name[column-name[,column-name [,…]]
- •Создание таблиц
- •Модификация таблиц
- •Создание индексов
- •Создание представления
- •Создание последовательности
- •Создание данных, определяемых пользователем
- •Insert into employee values (100,
- •Создание синонима
- •Создание ограничений
- •Табличные пространства (области).
- •Табличныеобласти
- •Контрольные вопросы
Oracle – реляционная СУБД => её основа SQL (sequel) структурированный английский язык запросов
SQL*PLUS – основной инструмент всех версий Oracle. (Может и весьма старый, но основной).
sqlplus userid/password@dblink file_name input_var
PL/SQL – процедурный язык Oracle с входящими в него операторами SQL
Буфер SQL – рабочая область, применяемая в среде SQL*PLUS
Строки в буфере нумерованы
Есть текущая строка
Команды буфера
Схема взаимодействия пользователя через среду SQL*PLUS
…………………………………………………………………….
A или APPEND new_text
Добавить к концу текущей строки
C или CHANGE/старый_текст/новый_текст/
Заменить подстроку в текущей строке буфера
Del
Удалить текущую подстроку из буфера
ED или EDIT [file_name]
Вызвать текстовый редактор и передать в него буфер, либо указанный файл
Get file_name
Считать указанный файл в буфер
I или Input text
Вставляет дополнительную строку с текстом после текущей строки
L или LIST number или nn1 nn2
Отображает содержимое строки number, либо строк от nn1 до nn2.
SAVE file_name
Сохраняет содержимое буфера в файле
START file_name par1 par2… или @file_name par1 par2…
Загрузить файл в буфер и выполнить его с параметрами
/ (косая черта)
Вызывает на выполнение содержимое буфера (ставится в отдельной строке)
Пример создания объектов
SQL
DDL |
DML |
DCL |
DQL |
CREATE RENAME ALTER DROP |
INSERT UPDATE DELETE MERGE SELECT |
COMMIT ROLLBACK GRANT REVOKE |
SELECT |
Data Definition Language – язык описания данных,
Data Manipulation Language язык манипулирования данными,
Data Control Language – язык управления данными,
Data Query Language – язык выборки данных
Примерный синтаксис оператора SELECT
(язык выборки данных)
SELECT * or column-name [alias] [,column-name [alias] [, …] or [function] or [arithmetic expression]
FROM table-name [, table-name [, …] or [sub-query]
[WHERE [conditional-statement] or [sub-query] ]
[GROUP BY column-name[alias][,column-name[alias] [,…]] ]
[HAVING [conditional-statement] or [sub-query] ]
[ORDER BY column-name [alias] [, column-name [alias] [, …] ] [DESCENDING or ASCENDING] ]
где column-name – это может (а иногда и должно) быть выражение имя-таблицы.имя-столбца .
Операторы сравнения значений
= |
!= или <> |
> |
< |
>= |
<= |
Конструкции, используемые вместо операторов сравнения
IN (list) |
Равно любому элементу в списке |
BETWEEN значение AND значение |
Включительно в диапазоне |
значение AND / OR значение |
Логическая функция/связка |
LIKE ‘шаблон’ |
Сравнить текст по шаблону |
IS NULL |
Проверка отсутствия данных |
NOT (конструкция) |
Логическое отрицание |
-- ---------- Выбор записей по группе допустимых значений
SELECT * FROM product
WHERE price = 50 OR price = 99;
SELECT * FROM product
WHERE price IN (50,99);
-- ---------- Выбор записей по интервалу допустимых значений
SELECT * FROM product
WHERE price > 50 AND price < 99;
SELECT * FROM product
WHERE price BETWEEN 50 AND 99;
-- ----------------- Использование шаблонов
SELECT * FROM product WHERE name LIKE ‘Chrome%’;
SELECT * FROM product WHERE name LIKE ‘%Chrome%’;
SELECT * FROM product WHERE name LIKE ‘%W_d%’;
-- ------------------ Выбор записей по null-значаниям
SELECT * FROM product WHERE last_date IS NULL;
SELECT * FROM product WHERE last_date IS NOT NULL;
D M L
Примерный синтаксис оператора INSERT
Insert into table-name[column-name[,column-name [,…]]
[VALUES (data [, date [, …] ])]
or
[SELECT …]
Начиная с версии 9i допускается многотабличная модификация оператора
INSERT ALL|FIRST
WHEN (condition_1) THEN
INTO table-name_1[column-name[,column-name [,…]]
[VALUES (sub-list_1 of sub-query_column_list)]
WHEN (condition_2) THEN
INTO table-name_2[column-name[,column-name [,…]]
[VALUES (sub-list_2 of sub-query_column_list)]
. . . . .
ELSE
INTO table-name_n[column-name[,column-name [,…]]
[VALUES (sub-list_n of sub-query_column_list)]
SELECT sub-query_column_list FROM query_table
При выполнении, прежде всего, выполняется подзапрос задаваемый оператором SELECT. Далее проверяются условия в блоках WHEN, для случая ALL проверяются все блоки, а в случае FIRST проверка прекращается при первом удовлетворении условия. Вставки производятся для всех таблиц входящих в блоки удовлетворяющие условию.
При вставке в каждую таблицу, данные берутся из определённых столбцов полученных в результате выполнения подзапроса SELECT.
Примерный синтаксис оператора UPDATE
UPDATE table-name
SET column-name = new_value
[,column-name = new_value]
[,column-name = new_value]
. . . . .
[WHERE [conditional-statement] or [sub-query] ]
где new-value - значение или результат выполнения подзапроса, при этом подзапрос следует заключить в скобки. Если этот подзапрос возвращает несколько полей, то column-name должен быть аналогичным списком полей заключённым в скобки.
Примерный синтаксис оператора DELETE
DELETE FROM table-name
[WHERE [conditional-statement] or [sub-query] ];
Примерный синтаксис оператора TRUNCATE
TRUNCATE TABLE table-name;
Эта команда необратима, откаты после неё не работают
В версии 9i добавлен оператор MERGE, он позволяет объединить действия операторов INSERT и UPDATE. Синтаксис:
MERGE INTO таблица
USING источник_данных ON (условие)
WHEN MATCHED THEN update-предложение
WHEN NOT MATCHED THEN insert-предложение;
где источник данных – как правило, подзапрос.
При выполнении, для каждой строки источника проверяется условие, заданное в предложении ON; если условие истинно, то выполняется update-предложение, иначе выполняется insert-предложение.
D C L
Основные инструкции управления транзакциями.
COMMIT [WORK][COMMENT ‘текст’ | FORCE ‘текст’[,n]];
Здесь, WORK – только для красоты. FORCE – принудительно завершает зависшую распределённую транзакцию. Длина текста до 50 символов.
ROLLBACK [TO [SAVEPOINT] savepoint-name];
SAVEPOINT [savepoint-name];
D D L
Предназначен для создания разнообразных объектов, таких как:
Таблицы
Индексы
Представления
Последовательности
Типы данных, определяемые пользователем
Синонимы
Кластеры
Ограничения
Табличные пространства
Секции
Триггеры, пакеты, процедуры, функции