Главная

Friday, 3 November 2017

Логические блоки SQL.

Всем привет.

Говорят что вторым языком после Английского будущий программист должен знать SQL. SQL это язык структурированных запросов (Structural Query Language).  

SQL необходим для создания, изменения и удаления данных в реляционных базах данных. Есть стандартный SQL, но - производители СУБД включают в него некоторые собственные наработки - так появились различные диалекты SQL (Transact, PL/SQL и другие).

Существует несколько блоков SQL: определения данных DDL, манипуляций данными DML, определения доступа к данным DCL, управления транзакциями TCL.

Иногда в тестах спрашивают про разницу между DDL, DML, DCL и TCL  командами. Так в чем же она?

DDL - (Data Defenition Language) предложения для определения структуры базы данных или схемы. 

Примеры:
CREATE - создает объекты базы данных (таблицы, представления и т.д.)
ALTER - изменяет структуру и объекты базы данных
DROP - удаляет объекты базы данных
TRUNCATE - удаляет все записи из таблицы
COMMENT - добавляет комментарии в словарь данных
RENAME - переименовывает объект (alter table <old_name> rename to <new_name>)

DML - (Data Manipulation Language) предложения для управления данными. 

Примеры:
SELECT - возвращает данные из базы данных
INSERT - вставляет данные в таблицу
UPDATE - обновляет существующие данные в таблице
DELETE - удаляет все записи в таблице
MERGE - UPSERT операция (insert или update)
CALL - вызов подпрограммы PL/SQL или Java
EXPLAIN PLAN - предоставляет план запроса
LOCK TABLE - управление параллелизмом


DCL - Data Control Language. 

Примеры:
GRANT - дает пользователю привилегии доступа к базе данных и ее объектам
REVOKE - забирает у пользователя привилегии данные командой GRANT

Или так:
GRANT EXECUTE ON хранимая процедура TO пользователь 
REVOKE EXECUTE ON хранимая процедура FROM пользователь

TCL - (Transaction Control) предложения используемые для управления изменениями сделанными предложениями DML. Это позволяет объединять предложения DML в логические транзакции.

Примеры:
COMMIT - сохраняет изменения
SAVEPOINT - определяет точку транзакции до которой потом можно откатиться
ROLLBACK - восстанавливает базу данных на момент последней операции COMMIT, откатывает транзакцию
SET TRANSACTION - изменяет опции транзакции, такие как: уровень изоляции и какой сегмент отката использовать

Предложения DML автоматически не сохраняются, т.е. вы можете использовать откат транзакции, но результаты DDL предложений сохраняются автоматически.

Успехов.

No comments:

Post a Comment

А что вы думаете по этому поводу?