Similar presentations:
Язык запросов SQL. CУБД Oracle
1.
CУБД OracleЯзык запросов SQL
2.
Операторы SQLКоманда
Описание
SELECT
Производит выборку данных из базы данных
INSERT
UPDATE
DELETE
Включают новые строки в таблицы базы данных, изменяют
существующие и удаляют ненужные. Вместе составляют Язык
манипулирования данными (DML).
CREATE
ALTER
DROP
RENAME
Эти команды создают, изменяют и удаляют структуры данных. В
совокупности называются Языком определения данных (DDL).
COMMIT
ROLLBACK
SAVEPOINT
Управляют изменениями, производимыми с помощью команд DML.
Изменения можно группировать в логические транзакции.
GRANT
REVOKE
Предоставляет или изымает права доступа к базе данных, так и к
структурам в ней. В совокупности называются Языком управления
данными (DCL).
2
3.
Операторы DDLCREATE
Эти команды создают, изменяют и
удаляют структуры данных. В
совокупности называются Языком
определения данных (DDL).
ALTER
DROP
RENAME
3
4.
Объекты базы данныхОбъект
Описание
Таблица
Основная единица хранения, состоит
из строк и столбцов
Представление
Логически представляет
подмножество данных из одной или
нескольких таблиц
Последовательность Генерирует значения первичных
ключей
Индекс
Увеличивает производительность
некоторых запросов
Синоним
Задает альтернативные имена для
некоторых объектов
4
5.
Правила задания имен• Имя должно начинаться с буквы
• Имя может быть длиной до 30 символов
• Должно содержать только символы A-Z, a-z, 09, _, #, $
• Не должно совпадать с именем другого
объекта, принадлежащего тому же
пользователю
• Не должно совпадать со словом,
зарезервированным Oracle
5
6.
Cоздание таблицыКоманда CREATE TABLE языка SQL используется для создания таблиц.
Это одна из команд Языка определения данных (DDL). Команды DDL
являются подмножеством команд SQL, используемых для создания,
изменения и удаления структур базы данных. Эти команды немедленно
влияют на базу данных и записывают информацию в словарь данных.
Чтобы создать таблицу, пользователь должен иметь привилегию
CREATE TABLE и область хранения, где можно создавать объекты.
CREATE TABLE [схема.]таблица
(столбец тип_данных [DEFAULT выражение]
[ограничение целостности] [,…]);
Задаётся имя таблицы, имя столбца, тип данных столба и размер столбца.
6
7.
Cоздание таблицыс помощью подзапроса
CREATE TABLE [схема.]таблица
[(столбец тип_данных[,…])]
AS подзапрос;
Количество заданных столбцов должно совпадать с
количеством столбцов в подзапросе.
Столбцы могут быть определены с именами и значениями,
используемыми по умолчанию
7
8.
Типы данных8
9.
Ограничения целостностиНазвание
Описание
NOT NULL
Это ограничение устанавливается для столбца, чтобы указать, что столбец должен
иметь значение в каждой строке, т.е. некоторое непустое значение.
UNIQUE
Ограничение UNIQUE используется для определения того, что значения в столбце
не должно повторяться в другой строке этой таблицы, определяет вторичный ключ
для таблицы. Это столбец или группа столбцов, которые можно использовать как
уникальную идентификацию строки.
FOREIGN KEY
Устанавливает отношение целостности между таблицами. Оно требует, чтобы
столбец или набор столбцов в одной таблице совпадал с первичным или вторичным
ключом другой таблицы.
CHECK
Ограничение CHECK определяет логику проверки, которая должна дать результат
true (истина) для оператора вставки, модификации или удаления из таблицы.
Ограничение CHECK гарантирует, что значение в измененной строке
удовлетворяют заданному набору проверок правильности.
INDEX
Ограничения PRIMARY KEY и UNIQUE автоматически создают индексы на
столбцах, для которых они определены, если ограничение активизируется при
создании.
TRRIGERS
Программный элемент хранимый в БД выполняемый автоматически, в
определенных ситуациях, не имеющий входных или выходных параметров, что в
9 итоги и является причиной невозможности вызвать его явно,
конечном
непосредственно, его вызывает только сама база данных Oracle.
10.
ALTER TABLEКоманда ALTER TABLE используется для следующих
операций:
• Добавление столбца
• Изменение существующего столбца
• Добавление ограничений
• Изменение существующих ограничений
ALTER TABLE [схема.]таблица
ADD
(столбец тип_данных[DEFAULT выражение][,…]);
ALTER TABLE [схема.]таблица
MODIFY (столбец тип_данных[DEFAULT выражение][,…]);
ALTER TABLE [схема.]таблица
DROP (столбец[,…]);
10
11.
DROP TABLE• Удаляются все данные и структура таблицы.
• Все незафиксированные транзакции фиксируются.
• Все индексы удаляются.
• Откат этой команды невозможен.
DROP TABLE [схема.]таблица;
11
12.
RENAME TABLEДля переименования таблицы, представления,
последовательности или синонима используется команда
RENAME.
RENAME таблица TO новое_имя_таблицы;
12
13.
Добавление комментариевк таблице
COMMENT ON TABLE таблица IS ‘текст’;
COMMENT ON COLUMN таблица.столбец IS ‘текст’;
Комментарии можно просматривать через представления
словаря данных:
ALL_COL_COMMENTS
USER_COL_COMMENTS
ALL_TAB_COMMENTS
USER_TAB_COMMENTS
13
14.
Создание последовательностиCREATE SEQUENCE последовательность
INCREMENT BY 1
START WITH 33
MAXVALUE 100000
NOCACHE
NOCYCLE;
Псевдостолбцы:
• NEXTVAL генерирует следующее свободное число в
последовательности.
• CURRVAL возвращает текущее значение
последовательности.
14
15.
Операторы DMLINSERT
Включают новые строки в таблицы
базы данных, изменяют
существующие и удаляют
ненужные. Вместе составляют Язык
манипулирования данными (DML).
UPDATE
DELETE
MERGE
15
16.
INSERTДобавление строк в таблицу с использованием Insert:
INSERT INTO table [ (column [ , column…])]
VALUES
(value [ , value…])];
Используя такую конструкцию вы сможете добавить
только одну строку за раз.
16
17.
UPDATEДля обновления существующих строк используется команда
UPDATE. В случае необходимости можно одновременно
обновлять несколько строк.
UPDATE таблица
SET
столбец = значение [,
столбец=значение, …]
[WHERE условие];
Обычно для идентификации отдельной строки
используется главный ключ. Использование с этой
целью других столбцов может привести к неожиданному
обновлению нескольких строк вместо одной.
17
18.
DELETEДля удаления строк используется команда DELETE.
DELETE
[WHERE
[FROM] таблица
условие];
Если ни одна строка не была удалена, выдается
сообщение “0 rows deleted.”
18
19.
Использование значений по умолчаниюDEFAULT в команде INSERT:
INSERT
VALUES
INTO
departments
(department_id, department_name, manager_id)
(300, ‘Engineering’, DEFAULT);
DEFAULT в команде UPDATE:
UPDATE
SET
WHERE
departments
manager_id=DEFAULT
department_id=10;
Ключевое слово DEFAULT используется для задания
значения, которое ранее определено в качестве значения по
умолчанию для столбца. Если значение по умолчанию не
определено для соответствующего столбца, Oracle
устанавливает неопределенное значение.
19
20.
MERGEКоманда MERGE позволяет вставлять или изменять строки
при определенных условиях.
MERGE INTO
имя_таблицы псевдоним_таблицы
USING
(таблица|представление|подзапрос) псевдоним
ON
(условие_соединения)
WHEN MATCHED THEN
UPDATE SET
столбец1 = значение_столбца1,
столбец2 = значение_столбца2
WHEN NOT MATCHED THEN
INSERT (список_столбцов)
VALUES(список_столбцов);
20
21.
MERGE- INTO определяет целевую таблицу, в которую производится
вставка или изменение;
- USING определяет источники данных, которые используются
для изменения или вставки. Это может быть таблица,
представление или подзапрос;
- ON условие, определяющее действие (изменение или вставка),
которое выполняется по команде MERGE;
- WHEN (NOT) MATCHED указывает серверу, как реагировать на
результаты условия соединения.
21
22.
Управление транзакциямиCOMMIT
Управляют изменениями,
производимыми с помощью команд
ROLLBACK DML. Изменения можно
группировать в логические
SAVEPOINT транзакции.
22
23.
ТранзакцииТ1
Т2
Состояние0 Состояние0
Состояние0
23
Т3
commit
commit commit
Состояние2 Состояние3
Состояние1 Время