01. Инструкции языка описания данных, инструкции языка обработки данных, инструкции безопасности, инструкции управления транзакциями - KattyOG/Database GitHub Wiki

Инструкции языка описания данных(DDL)

Data Definition Language (DDL) – это группа операторов описания данных. Другими словами, с помощью операторов, входящих в эту группы, мы определяем структуру базы данных и работаем с объектами этой базы, т. е. создаем, изменяем и удаляем их.

Инструкции Описание
CREATE Используется для определения новых сущностей. Например, для создания базы данных(DATABASE), таблицы(TABLE), индекса(INDEX), представления(VIEW) или хранимой процедуры(PROCEDURE).
ALTER Используется для изменения существующих сущностей(таблицы, индекса, представления или хранимой процедуры). Например, с помощью инструкции ALTER TABLE можно добавить новый столбец в таблицу, а инструкция ALTER DATABASE позволяет изменить атрибуты базы данных.
DROP Используется для удаления существующих сущностей(таблицы, индекса, представления, хранимой процедуры, базы данных). Например, при помощи инструкции DROP TABLE можно удалить таблицу из базы данных. Или DROP VIEW удаляет представление из базы данных.

В DDL существуют понятия первичного и внешнего ключа, которые осуществляют соблюдение целостности данных. Команды "первичный ключ" primary key, "внешний ключ" foreign key включаются в запросы «create table", «alter table».

Инструкции языка обработки данных(DML)

Data Manipulation Language (DML) – это группа операторов для манипуляции данными. С помощью этих операторов мы можем добавлять, изменять, удалять и выгружать данные из базы, т. е. манипулировать ими.

Инструкции Описание Пример
SELECT Извлечение данных из базы данных SELECT список_столбцов FROM имя_таблицы
INSERT Добавляет строки в таблицу. Эта команда может добавить одну или несколько строк, сформированных выражениями значений, либо ноль или более строк, выданных дополнительным запросом. INSERT INTO имя_таблицы (столбец1, столбец2, ... столбецN) VALUES (значение1, значение2, ... значениеN)
UPDATE Изменяет строки таблицы. UPDATE изменяет значения указанных столбцов во всех строках, удовлетворяющих условию. UPDATE имя_таблицы SET столбец1 = значение1, столбец2 = значение2, ... столбецN = значениеN
DELETE Удаляет записи таблицы. Команда DELETE удаляет из указанной таблицы строки, удовлетворяющие условию WHERE. Если предложение WHERE отсутствует, она удаляет из таблицы все строки, в результате будет получена рабочая, но пустая таблица. DELETE FROM имя_таблицы
MERGE-UPSERT операция вставки или обновления
CALL вызов подпрограммы PL/SQL или Java
LOCK TABLE управление параллелизмом

Инструкции безопасности(DCL)

SQL Server обеспечивает защиту данных от неавторизированного доступа и от фальсификации. Основными функциями безопасности SQL Server являются:

  • проверка подлинности (аутентификация) – процедура проверки соответствия некоего лица и его учетной записи в компьютерной системе. Один из способов аутентификации состоит в задании пользовательского идентификатора, в просторечии называемого «логином» (login – регистрационное имя пользователя) и пароля – некой конфиденциальной информации, знание которой обеспечивает владение определенным ресурсом.
  • авторизация – это предоставление лицу прав на какие-то действия в системе.

В основе системы безопасности SQL Server лежат три понятия:

  1. участники системы безопасности (Principals);
  2. защищаемые объекты (Securables);
  3. система разрешений (Permissions).

Участники системы безопасности или принципалы – это сущности, которые могут запрашивать ресурсы SQL Server.

Защищаемые объекты – это ресурсы, доступ к которым регулируется системой авторизации.

Управление разрешениями производится путем выполнения инструкций языка DCL (Data Control Language). Data Control Language (DCL) – группа операторов определения доступа к данным. Иными словами, это операторы для управления разрешениями, с помощью них мы можем разрешать или запрещать выполнение определенных операций над объектами базы данных.

Инструкции Описание Пример
GRANT Команда GRANT имеет две основные разновидности: первая назначает права для доступа к объектам баз данных (таблицам, столбцам, представлениям, сторонним таблицам, последовательностям, базам данных, обёрткам сторонних данных, сторонним серверам, функциям, процедурным языкам, схемам или табличным пространствам), а вторая назначает одни роли членами других. GRANT privileges ON object TO user
DENY Запретить
REVOKE Команда REVOKE лишает одну или несколько ролей прав, назначенных ранее. REVOKE privileges ON object FROM user

Инструкции управления транзакциями(TCL)

Transaction Control Language (TCL) – группа операторов для управления транзакциями.

Транзакция – это команда или блок команд (инструкций), которые успешно завершаются как единое целое, при этом в базе данных все внесенные изменения фиксируются на постоянной основе или отменяются, т. е. все изменения, внесенные любой командой, входящей в транзакцию, будут отменены.

Инструкции Описание Пример
START TRANSACTION Эта команда начинает новый блок транзакции. START TRANSACTION [ режим_транзакции [, ...] ]
COMMIT TRANSACTION COMMIT фиксирует текущую транзакцию. Все изменения, произведённые транзакцией, становятся видимыми для других и гарантированно сохранятся в случае сбоя. COMMIT
ROLLBACK TRANSACTION ROLLBACK откатывает текущую транзакцию и приводит к аннулированию всех изменений, произведённых транзакцией. ROLLBACK
SAVEPOINT TRANSACTION SAVEPOINT устанавливает новую точку сохранения в текущей транзакции. Точка сохранения — это специальная отметка внутри транзакции, которая позволяет откатить все команды, выполненные после неё, и восстановить таким образом состояние на момент установки этой точки. SAVEPOINT имя_точки_сохранения

Команды управление транзакциями используются только для DML команд: INSERT, UPDATE, DELETE. Они не могут быть использованы во время создания, изменения или удаления таблицы.