DDL/DCL/TCL

DDL – Data Definition Language

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

CREATE

// Создать базу данных database
CREATE DATABASE database

// Cоздать таблицу table
CREATE TABLE table (
    field INT,
    field2 VARCHAR(255),
    field3 INT
)

// Cоздать таблицу table c дополнительными параметрами
CREATE TABLE table (
    field INT PRIMARY KEY,
    field2 VARCHAR(255) NOT NULL,
    field3 INT NOT NULL DEFAULT 18
)    

ALTER

// Добавить поле field в таблицу table
ALTER TABLE table
ADD field INT NOT NULL

// Переименовать поле field в таблице table
ALTER TABLE table
RENAME COLUMN field TO field_new

// Переименовать таблицу table
ALTER TABLE table
RENAME TO table_new 

DROP

// Удалить базу данных database
DROP DATABASE database

// Удалить таблицу table
DROP TABLE table

// Удалить столбец field в таблице table
ALTER TABLE table
DROP COLUMN field

DCL – Data Control Language

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

GRANT

// Предоставить пользователю user права на чтение в таблице table
GRANT SELECT ON table TO user

// Предоставить пользователю user права на запись в таблицу table
GRANT INSERT ON table TO user

REVOKE

// Отозвать у пользователя user права на чтение в таблице table
REVOKE SELECT ON table TO user

// Отозвать у пользователя user права на запись в таблицу table
REVOKE INSERT ON table TO user

DENY

// DENY > REVOKE
//Запретить пользователю user разрешение на чтение таблицы table 
//независимо от того, какие разрешения этот пользователь мог унаследовать от роли
DENY SELECT ON table TO user

TCL – Transaction Control Language

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

Транзакция — это набор SQL-запросов, выполняемых над данными, которые объединены в атомарную секцию. Это значит, что промежуточные результаты операции не видны для других конкурирующих транзакций — и вся секция будет либо выполнена, либо полностью отменена в случае ошибки.

BEGIN/COMMIT

// Выполнение кода текущей транзакции. Например INSERT в таблицу table
BEGIN TRANSACTION
INSERT INTO table (field1, field2)
VALUES ('value_field1', 'value_field2')
COMMIT

BEGIN/ROLLBACK

// Откатывает текущую транзакцию и отменяет все обновления, сделанные транзакцией
BEGIN TRANSACTION
INSERT INTO table (field1, field2)
VALUES ('value_field1', 'value_field2')
ROLLBACK

Источник:

Last updated