Приоритеты операций SQL
Унарные арифметические операции + - операция PRIOR
Арифметические операции * /
Бинарные арифметические операции + - символьная операция | |
Все операции сравнения
Логическая операция AND
Логическая операция OR
Унарные арифметические операции + -
Арифметические операции * /
Бинарные арифметические операции + -
2.3.2.4 Процедурное расширение языка SQL - PL/SQL.
Oracle Server - полнофункциональная реляционная СУБД, которая идеально подходит для архитектур клиент/сервер и интернет/интранет. Особенности внутренней архитектуры Oracle ориентированы на обеспечение готовности, максимальной пропускной способности, безопасности и эффективного использования ресурсов.
Oracle также присущи черты, связанные с используемым языком программирования, которые способствуют ускорению разработки и улучшению эффективности серверной части приложений:
Один из основных компонентов Oracle Server - его процессор PL/SQL. (PL - Procedural Language - процедурный язык.)
PL/SQL - язык Oracle четвертого поколения, объединяющий структурированные элементы процедурного языка программирования с языком SQL, разработанный специально для организации вычислений в среде клиент/сервер. Он позволяет передать на сервер программный блок PL/SQL, содержаший логику приложения, как оператор SQL, одним запросом. Используя PL/SQL, можно значительно уменьшить объем обработки в клиентской части приложения и нагрузку на сеть. Например, может понадобиться выполнить различные наборы операторов SQL в зависимости от результата некоторого запроса. Запрос, последующие операторы SQL и операторы условного управления могут быть включены в один блок PL/SQL и пересланы серверу за одно обращение к сети.
При этом вся логика приложений делится на клиентскую и серверную части. Серверная часть может быть релаизована в виде функций, хранимых процедур и пакетов.
Функции. Часть логики приложения ориентированной на выполнение конкретного комплекса операций на сервере, результат которых возвращается в виде значения функции. Откомпилированные функции и их исходные тексты содержатся в базе данных.
Хранимые процедуры. Часть логики приложения, особенно нуждающаяся в доступе к базе данных, может храниться там, где она обрабатывается (на сервере). Хранимые процедуры не возвращают значения результата, обеспечивают удобный и эффективный механизм безопасности. Откомпилированные хранимые процедуры и их исходные тексты содержатся в базе данных.
Пакеты. Часть логики приложений: фукций и пакетов, предназначеных для решениях задач в рамках одного модуля (подсистемы) АИС.
Триггеры базы данных. Можно использовать триггеры, чтобы организовать сложный контроль целостности, выполнять протоколирование (аудит) и другие функции безопасности, реализовать в приложениях выдачу предупреждений и мониторинг.
Декларативная целостность. Ограничения активизируются сервером всякий раз, когда записи вставляются, обновляются или удаляются. В дополнение к ограничениям ссылочной целостности, которые проверяют соответствие первичного и внешнего ключей, можно также накладывать ограничения на значения, содержащиеся в столбцах таблицы. Поддержка целостности на сервере уменьшает размер кода клиентской части, необходимого для проверки допустимости данных, и увеличивает устойчивость бизнес- модели, определенной в базе данных.
Список, зарезервированных слов PL/SQL
Язык PL/SQL также включает зарезервированные слова, имеющие определенное значение в операторах PL/SQL.
| ABORT | DEFINITION | NOT | TADAUTH |
| ACCEPT | DELAY | NULL | TABLE |
| ACCESS | DELETE | NUMBER | TABLES |
| ADD | DELTA | NUMBER_BASE | TASK |
| ALL | DESC | OF | TERMINATE |
| ALTER | DIGITS | ON | THEN |
| AND | DISPOSE | OPEN | TO |
| ANY | DISTINCT | OPTION | TRUE |
| ARRAY | DO | OR | TYPE |
| ARRAYLEN | DROP | ORDER | UNION |
| AS | ELSE | OTHERS | UNIQUE |
| ASC | ELSIF | OUT | UPDATE |
| ASSERT | END | PACKAGE | USE |
| ASSIGN | ENTRY | PARTITION | VALUES |
| AT | EXCEPTION | PCTFREE | VARCHAR |
| AUTHORIZATION | EXCEPTION_INIT | PRAGMA | VARCHAR2 |
| AVG | EXISTS | PRIOR | VARIANCE |
| BEGIN | EXIT | PRIVATE | VIEW |
| BETWEEN | FALSE | PROCEDURE | VIEWS |
| BODY | FETCH | PUBLIC | WHEN |
| BOOLEAN | FOR | RAISE | WHERE |
| BY | FORM | RANGE | WHILE |
| CASE | FROM | REAL | WITH |
| CHAR | FUNCTION | RECORD | WORK |
| CHAR_BASE | GENERIC | RELEASE | XOR |
| CHECK | GOTO | REM | |
| CLOSE | GRANT | RENAME | |
| CLUSTER | GROUP | RESOURCE | |
| CLUSTERS | HAVING | RETURN | |
| COLAUTH | IDENTIFIED | REVERSE | |
| COLUMNS | IF | REVOKE | |
| COMMIT | IN | ROLLBACK | |
| COMPRESS | INDEX | ROWNUM | |
| CONNECT | INDEXES | ROWTYPE | |
| CONSTANT | INDICATOR | RUN | |
| COUNT | INSERT | SAVEPOINT | |
| CRASH | INTEGER | SCHEMA | |
| CREATE | INTERSECT | SELECT | |
| CURRENT | INTO | SEPARATE | |
| CURSOR | IS | SET | |
| DATABASE | LEVEL | SIZE | |
| DATA_BASE | LIKE | SPACE | |
| DATE | LIMITED | SQL | |
| DBA | LOOP | SQLCODE | |
| DEBUGOFF | MAX | SQLERRM | |
| DEBUGON | MIN | START | |
| DECIMAL | MINUS | STATEMENT | |
| DECLARE | MOD | STDDEV | |
| DEFAULT | NEW | SUBTYPE | |
| NOCOMPRESS | SU |