Операторы SQL Oracle

Илья Дергунов

Илья Дергунов

Автор статьи. ИТ-специалист с 20 летним стажем, автор большого количества публикаций на профильную тематику (разработка ПО, администрирование, новостные заметки). Подробнее.

Возможности операторов SQL в базе данных Oracle DatabaseВ основе языка SQL лежат принципы реляционных баз данных. На этом языке нужно лишь сформулировать, что делать, но не то, как делать. В дополнение к обработке традиционных реляционных данных новые основанные на XML расширения языка SQL позволяют управлять XML-документами, полным текстом, мультимедиа и прочими объектами. Oracle Database 11g и 12c интегрирует в себе запросы XML, функциональность хранения и обновления механизма базы данных. Независимо от того, какой инструмент применяется для доступа к базе данных Oracle, в конечном итоге для выполнения всех транзакций используется Oracle SQL. Прикладная программа или применяемый инструмент Oracle могут позволить обращаться к базе данных без явного использования SQL, но все эти инструменты и приложения в конечном итоге для обработки запросов должны применять SQL.

Язык SQL включает команды для моделирования данных, определения данных, доступа к данным, поддержания безопасности данных, а также администрирования данных. Операторы SQL, используемые Oracle, могут быть разделены на несколько групп, в зависимости от того, изменяют они данные таблиц, структуру таблиц или какие-то другие характеристики сеанса или экземпляра. Ниже перечислены типы операторов SQL.

Ниже мы детально рассматриваются все указанные типы.

 

Операторы управления системой

Оператор управления системой ALTER SYSTEM можно использовать для изменения свойств работающего экземпляра базы данных Oracle Database. Например, с помощью ALTER SYSTEM легко модифицировать определенные параметры инициализации, такие как компонент разделяемого пула системной глобальной области (SGA). В настоящее время ALTER SYSTEM в Oracle — единственный оператор SQL для управления системой.

Ниже приведен пример применения команды ALTER SYSTEM:

SQL> ALTER SYSTEM KILL SESSION '25,9192';
Session killed
SQL> 

 

Операторы управления сеансом

Операторы управления сеансом позволяют динамически изменять свойства индивидуального пользовательского сеанса. Например, если вы намерены выполнять трассировку всего, что происходит в сеансе SQL, то можете с помощью команды ALTER SESSION SET SQL TRACE=TRUE включить трассировку сеанса. Операторы управления сеансом также очень полезны при изменении нескольких инициализационных параметров только в одном сеансе.


На заметку! Процедурное расширение Oracle языка SQL — PL/SQL — не поддерживает операторов управления сеансом.


Применение операторов языка SQL в СУБД Oracle Database

Общие операторы управления сеансом включают команды ALTER SESSION и SET ROLE. Ниже приведен пример использования оператора ALTER SESSION, в котором команда ALTER SESSION используется для установки формата данных, действительного на протяжении времени существования сеанса: 

SQL> ALTER SESSION SET NLS_DATE_FORMAT = 'MM-DD-YYYY HH:MI:SS';
Session altered.
SQL>

 

Встроенные операторы SQL

Встроенные операторы SQL включают операторы языка определения данных ( Data Definition Language — DDL), языка манипуляции данными ( Data Manipulation Language — DML) и операторы управления транзакциями (вроде OPEN, CLOSE, FETCH и EXECUTE), применяемые в программе на процедурном языке, например, в операторах,используемых с предварительными компиляторами Oracle.

 

Операторы языка манипуляции данными

Операторы языка манипуляции данными — это операторы, которые запрашивают (извлекают) или манипулируют (изменяют) данными в таблице. По большей части, операторы DML модифицируют данные в объектах схемы. В большинстве систем оперативной обработки транзакций (online transaction processing — OLTP) большая часть работы Oracle состоит в принятии запросов от пользователей, которые содержат в себе операторы DML, и возврате результатов этих операторов.

Большую часть времени вы будете иметь дело со следующими четырьмя важнейшими операторами DML: SELECT, INSERT, UPDATE и DELETE. Обратите внимание, что в дополнение к этим четырем общим операторами DML есть и другие, которые уточняют выполнение этих четырех базовых операторов. Например, оператор MERGE имеет дело с условными вставками и удалениями, а оператор LOCK TABLE используется для модификации механизма блокировок Oracle по умолчанию.

 

Операторы SELECT

Операторы SELECT — это запросы, извлекающие данные из таблицы или набора таблиц (или представлений). Oracle предлагает набор операторов, таких как UNION, MINUS и INTERSECT, позволяющих комбинировать результаты нескольких запросов для получения финального результирующего набора данных. С помощью команд ORDER BY можно отсортировать результаты, выданные Oracle; в противном случае результаты не будут представлены в каком-то определенном порядке. Когда требуются данные из нескольких таблиц, их необходимо объединять в операторах SELECT. Ограничить результирующий набор можно, соединяя таблицы с помощью условий соединения.

Можно также использовать подзапросы как часть основного запроса верхнего уровня. Подзапрос в конструкции WHERE оператора SELECT называется вложенным подзапросом. Подзапрос, являющийся частью конструкции FROM оператора SELECT, называется встроенным представлением (inline view). В приложении представлены примеры подзапросов, вложенных подзапросов и вложенных представлений.

 

Операторы INSERT, DELETE и UPDATE

Оператор INSERT вставляет новые строки в существующие таблицы, а оператор DELETE удаляет их из таблиц. Оператор UPDATE модифицирует один или более столбцов одиночной строки или же их множества в пределах таблицы. Хотя оптимизация операторов SELECT, обращенных к крупным таблицам, является важнейшей частью настройки производительности, все же операторы SQL, которые модифицируют, удаляют или добавляют данные, представляют собой источник разочарований администраторов при работе с базой данных OLTP. Правильное проектирование таблиц и индексов в базе данных важно для эффективной обработки больших объемов параллельных операций вставки, удаления и обновления таблиц. Вдобавок администратор базы данных для эффективного выполнения операторов подобного рода нуждается в правильном использовании табличного пространства отмены (undo) и оперативных журналов повторного выполнения.

 

Операторы управления транзакциями

Операторы управления транзакциями используются для управления изменениями, выполняемыми операторами SQL манипуляции данных вроде INSERT, UPDATE или DELETE. Существуют четыре оператора управления транзакциями.

  • COMMIT. Когда этот оператор следует за набором операторов DML, проведенные ими изменения становятся постоянными.
  • ROLLBACL. Когда этот оператор следует за набором из одного или более операторов DML, то изменения, проведенные предшествующими операторами, отменяются.Если не установлено никаких точек сохранения, то отменяются все операторы от начала транзакции.
  • SAVEPOINT. Этот оператор обеспечивает гибкость транзакций, помогая устанавливать промежуточные точки в транзакции, к которым можно откатить (отменить) транзакции.
  • SET TRANSACTION. Этот редко используемый оператор явно помечает начало транзакции и применяется в таких операторах, как SET TRANSACTION READ ONLY.

 

Операторы языка определения данных

Операторы языка определения данных позволяют определять структуру различных объектов схемы в базе данных Oracle Database. Операторы DDL позволяют создавать, изменять и удалять объекты базы данных, такие как таблицы и индексы. Ниже перечислены некоторые из основных применений операторов DDL.

  • Создание таблиц, индексов и прочих объектов схемы.
  • Создание и модификация процедур, функций и пакетов.
  • Удаление и модификация объектов базы данных.
  • Создание и управление пользователями базы данных.
  • Выдача и отъем привилегий доступа к объектам.
  • Создание и изменение табличных пространств.
  • Создания и модификация связей с другими базами данных.

 

Вас заинтересует / Intresting for you:

Oracle Database: обзор базы да...
Oracle Database: обзор базы да... 23546 просмотров Илья Дергунов Sun, 11 Aug 2019, 15:01:35
Oracle изменения изменений!
Oracle изменения изменений! 3112 просмотров Stas Belkov Tue, 21 Nov 2017, 13:18:46
Проверка оставшегося свободног...
Проверка оставшегося свободног... 5784 просмотров Александров Попков Tue, 21 Nov 2017, 13:18:46
Разница между базой данных и э...
Разница между базой данных и э... 3264 просмотров Александров Попков Tue, 21 Nov 2017, 13:18:46
Войдите чтобы комментировать

1dz аватар
1dz ответил в теме #8961 6 года 1 мес. назад
Очень полезная публикация для начинающих программистов и администраторов баз данных Oracle. В прочем, как и не только Oracle, SQL - он же универсальный язык! Спасибо!