Чтение онлайн

на главную - закладки

Жанры

Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ

Борри Хелен

Шрифт:

* Динамический SQL (Dynamic SQL, DSQL) - это подмножество наиболее часто используется сегодня. Оно используется во всех программах интерфейса с базой

– данных, которые общаются с сервером через интерфейс прикладного программирования (Application Programming Interface, API). Некоторые команды DDL, доступные в ESQL, которые не могут быть реализованы в DSQL, заменяются вызовами функций API.

* Интерактивный SQL (Interactive SQL, ISQL)- это язык, реализованный в утилите командной строки isql. Он основан на DSQL с расширениями просмотра метаданных и некоторой системной статистики, а также для управления сессиями isql.

*

Процедурный SQL (Procedural SQL, PSQL) - это язык для написания хранимых процедур и триггеров. Он состоит из всех операторов DML с добавлением множества процедурных расширений.

Язык определения данных (DDL)

При определении метаданных для использования в базе данных Firebird мы используем лексикон операторов и параметров стандартов SQL для создания объекта с его типом и именем - или идентификатором, - а также для задания и изменения его атрибутов. В этом лексиконе также присутствуют операторы для удаления объектов.

Запросы с использованием DDL зарезервированы для целей определения метаданных, следовательно:

* аккуратно управляйте ими, если вы реализуете их использование в приложениях конечного пользователя;

* ожидайте ошибок при компиляции, если вы собираетесь их использовать в хранимых процедурах.

Язык DDL в Firebird описан в частях III и IV. Определение просмотров, предоставление и отмена привилегий SQL также относятся к DDL. Просмотры, которые объединяют операторы DDL и DML, обсуждаются в главе 24. Определение и поддержка разрешений SQL описывается в главе 35.

Язык манипулирования данными (DML)

Операторы DML, их синтаксис и выражения для поиска и манипулирования наборами данных являются предметом рассмотрения этой части книги.

* В главе 20 вводится концепция наборов, структура и синтаксис запросов DML. Глава включает разд. "Тема оптимизации", где рассматривается работа с оптимизатором запросов.

* Глава 21 описывает функции, операции и выражения, порядок их использования.

* В главе 22 рассматриваются запросы, которые оперируют с множеством таблиц при использовании соединений (joins), подзапросов (sub-queries) и объединений (unions).

* В главе 23 рассматриваются синтаксис и вопросы определения наборов, которые требуют сортировки или группирования, а также запросы, отыскивающие строки в нескольких таблицах без использования соединений.

* Глава 24 содержит описание и использование просмотров, а также других наследуемых объектов типа таблиц.

Возможности встраиваемого языка (ESQL)

Некоторые реляционные системы управления базами данных, включая Firebird, предоставляют возможность непосредственного включения операторов SQL в модули, написанные на языке программирования третьего поколения. Стандарт предоставляет концептуальные алгоритмы, по которым будет выполняться программирование приложений, но не задает никаких правил реализации.

Возможность программирования приложений со встроенным SQL в Firebird включает подмножество операторов, подобных операторам SQL, и конструкции, которые могут быть включены в исходный код программы для обработки препроцессором перед компиляцией кода. Конструкции встроенного языка SQL называются встроенным SQL (ESQL). Операторы ESQL не могут генерироваться динамически.

ESQL недопустим в хранимых процедурах и триггерах,

а процедурный язык (PSQL) недопустим во встроенном SQL. ESQL может выполнять хранимые процедуры. ESQL используется в программах, написанных на традиционных языках программирования, таких как С или COBOL. Каждому оператору ESQL должен предшествовать SQL-оператор EXEC. Препроцессор GPRE преобразует операторы ESQL в структуры данных используемого языка программирования и вызовы сервера Firebird.

Более подробную информацию см. в "Embedded SQL" (Встраиваемый SQL) в документации Borland по InterBase 6.x или EmbedSQL.pdf в соответствующем комплекте электронной документации [63] .

Динамический в сравнении со статическим SQL

Операторы SQL, включенные в код и обработанные препроцессором, иногда называются статическим SQL. В отличие от них операторы, которые генерируются клиентским приложением и передаются для выполнения на сервер во время работы, называются динамическим SQL (DSQL).

63

Рекомендую обратиться наТам можно найти перевод на русский язык некоторых книг из документации фирмы Borland по InterBase 7.1.
– Прим. пе-

Если вы не пишете код для приложений ESQL, вы используете DSQL. Операторы, выполняемые в утилите интерактивного SQL (isql) или в другой интерактивной утилите, являются операторами DSQL, таким же образом они обрабатываются в клиентских приложениях, которые используют напрямую или опосредованно API (через драйверы доступа к базе данных, такие как ODBC, JDBC или BDE).

В приложениях с Embedded SQL статический SQL позволяет передавать запросы в API Firebird, вместо того, чтобы использовать препроцессор и макросы для формирования структур API. Поскольку весь запрос полностью подготовлен, он может выполняться быстрее динамических операторов, которые передаются серверу, где выполняется их синтаксический анализ и подготовка во время выполнения программы.

Разновидности подмножеств языка

Преднамеренно или случайно существуют некоторые незначительные отличия между подмножествами языка SQL в Firebird.

* Формат некоторых обычных операторов SQL может слегка изменяться в статическом и динамическом вариантах SQL.

* Терминаторы операторов могут изменяться в разных подмножествах языка:

• операторы PSQL и ESQL завершаются точкой с запятой;

• в операторах DSQL, передаваемых через структуры API, терминаторы отсутствуют;

• операторы DSQL, вводимые в интерактивной утилите запросов isql требуют терминаторов, которые могут быть установлены при использовании SET TERM в любой печатаемый символ из первых 127 символьного подмножества ASCII.

Интерактивный SQL (ISQL)

Инструмент интерактивных запросов isql использует операторы DSQL вместе с двумя подмножествами расширенных команд (группы SET xxx и SHOW xxx), которые позволяют интерактивно выполнить некоторые установки и запросы к схеме соответственно. Некоторые команды SET могут быть также включены в скрипты определения данных (скрипты DDL для пакетного выполнения в isql) и в Embedded SQL.

Поделиться:
Популярные книги

Шайтан Иван 2

Тен Эдуард
2. Шайтан Иван
Фантастика:
боевая фантастика
попаданцы
альтернативная история
5.00
рейтинг книги
Шайтан Иван 2

Наследник старого рода

Шелег Дмитрий Витальевич
1. Живой лёд
Фантастика:
фэнтези
8.19
рейтинг книги
Наследник старого рода

Аргумент барона Бронина 2

Ковальчук Олег Валентинович
2. Аргумент барона Бронина
Фантастика:
попаданцы
аниме
сказочная фантастика
фэнтези
5.00
рейтинг книги
Аргумент барона Бронина 2

Третье правило дворянина

Герда Александр
3. Истинный дворянин
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Третье правило дворянина

Убивать чтобы жить 3

Бор Жорж
3. УЧЖ
Фантастика:
героическая фантастика
боевая фантастика
рпг
5.00
рейтинг книги
Убивать чтобы жить 3

СД. Том 15

Клеванский Кирилл Сергеевич
15. Сердце дракона
Фантастика:
героическая фантастика
боевая фантастика
6.14
рейтинг книги
СД. Том 15

Жена неверного маршала, или Пиццерия попаданки

Удалова Юлия
Любовные романы:
любовно-фантастические романы
4.25
рейтинг книги
Жена неверного маршала, или Пиццерия попаданки

Мымра!

Фад Диана
1. Мымрики
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Мымра!

Идеальный мир для Лекаря 12

Сапфир Олег
12. Лекарь
Фантастика:
боевая фантастика
юмористическая фантастика
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 12

Оцифрованный. Том 1

Дорничев Дмитрий
1. Линкор Михаил
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Оцифрованный. Том 1

Элита элит

Злотников Роман Валерьевич
1. Элита элит
Фантастика:
боевая фантастика
8.93
рейтинг книги
Элита элит

Хуррит

Рави Ивар
Фантастика:
героическая фантастика
попаданцы
альтернативная история
5.00
рейтинг книги
Хуррит

Шаман. Похищенные

Калбазов Константин Георгиевич
1. Шаман
Фантастика:
боевая фантастика
попаданцы
6.44
рейтинг книги
Шаман. Похищенные

Курсант: Назад в СССР 4

Дамиров Рафаэль
4. Курсант
Фантастика:
попаданцы
альтернативная история
7.76
рейтинг книги
Курсант: Назад в СССР 4