Oracle – группа команд DDL, DML, DCL

К базе данных Oracle мы можем обратиться только на SQL. Этот язык запросов делиться на несколько групп. Документация выделят 4 группы.

SELECT в книгах эту команду относят к DML. Ее функция – возвратить набор данных. Правда в PL/SQL разработчики часто используют SELECT для создания неявных курсоров. Это уже чистое программирование на языке PL/SQL. Но с точки зрения SQL, SELECT это команда которая может принимать входящие параметры.

DDL (Data definition language) язык определения данных. DDL is a language used by a database management system (like Oracle) that allows users to define the database and specify data types, structures and constraints on the data. Другими словами, этот язык определяет структуру таблицы, как построить индекс и прочее. Явные представители этого раздела – это команды создания, удаления и изменения объектов, хранящихся в БД. Объекты – это таблицы, индексы, кластеры, синонимы и тд. Они показаны на рисунке.

К примеру команда ‘create’ для создания нового объекта в БД Oralce. Alter – команда изменения состояния объектов. Drop – команда для удаления объектов. Alalyze и прочие. У данных команд, есть одна особенность, мы не можем передавать параметры в них. Как команда написана, так она и будет выполнена. Команда DDL открывает собственную транзакцию, и сама же закрывает ее. Транзакция может откатиться неудачей.

Следующая группа команд это DML (Data Manipulation Language) – commands can be used to manipulate data within existing database tables. Команда DDL работает автономно, фиксирует все другие транзакции, она выполняет изменения в словаре мета данных. И команда DML также вносит изменения в таблицы, но уже не в системные, а в пользовательские данные. Insert – вставляет новую запись в пользовательскую таблицу. Update – изменение состоянии записи пользовательской таблицы. Delete – удаление записи из пользовательской таблицы. Начиная с Oracle 9 появилась команда MERGE – добавляет запись, если такой записи нет, модифицирует если такой записи нет, и все в одной команде. Используется крайне редко, но очень удобная, редкая потому что нет ее в SQL. Для команд DML характерно принятие параметра IN. В Oracle любая команда DML выполняется в БД в виде курсора – открывается курсор.

Группа команд DCL (Data Control Language) is the category of SQL statements that control access to the data and to the database. COMMIT – фиксирует транзакцию. ROLLBACK – откат изменения. SET transaction – для открытия транзакции, тоже может стартовать транзакцию. SAVE point – зафиксировать точку транзакции. Команды DCL не принимают параметров.

Блок. Begin …. End. Можем в нем выполнить любое количество команд. Есть свои правила и особенности, это уже чистое программирование. Можно объявлять переменные, обрабатывать excerptions и прочее. Механизм программирования сервера базы данных Oracle. Анонимный блок может принимать IN параметр, но он может возвращать результаты.

Это было небольшое отступление. Более подробно будет все рассмотрено в последующих статьях. Или продолжиться эта запись.

 

Related Posts