Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Firebird Π Π£ΠšΠžΠ’ΠžΠ”Π‘Π’Π’Πž Π ΠΠ—Π ΠΠ‘ΠžΠ’Π§Π˜ΠšΠ БАЗ ДАННЫΠ₯Β». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 80

Автор Π₯Π΅Π»Π΅Π½ Π‘ΠΎΡ€Ρ€ΠΈ

* ДинамичСский 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).

Если Π²Ρ‹ Π½Π΅ ΠΏΠΈΡˆΠ΅Ρ‚Π΅ ΠΊΠΎΠ΄ для ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ 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.

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ подмноТСствС языка isql см. Π² Π³Π»Π°Π²Π΅ 37.

ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½Ρ‹ΠΉ язык (PSQL)

Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚ Π½Π΅ описываСт возмоТности ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½ΠΎΠ³ΠΎ языка, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π² ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ΅ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΎΠ±Ρ‰ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ программирования Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π΅ΡˆΠ΅Π½Ρ‹ с использованиСм языка программирования. НС сущСствуСт спСцификаций для конструкций языка ΠΏΠΎ ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ, Π²Ρ‹Ρ‡ΠΈΡΠ»Π΅Π½ΠΈΡŽ ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΌΡƒ созданию Π΄Π°Π½Π½Ρ‹Ρ… Π²Π½ΡƒΡ‚Ρ€ΠΈ систСмы управлСния Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ….

Π’Π΅ рСляционныС Π‘Π£Π‘Π”, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° сСрвСрС, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ ΠΈ синтаксис, ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°ΠΌ SQL, для Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ SQL. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π‘Π£Π‘Π” свободСн ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ свои собствСнныС Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ Ρ‚Π°ΠΊΠΈΡ… конструкций. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ Ρ‚Π°ΠΊΠΈΠ΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹ΠΌΠΈ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°ΠΌΠΈ.

Firebird прСдоставляСт Ρ‚Π°ΠΊΠΈΠ΅ конструкции Π² Π²ΠΈΠ΄Π΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½ΠΎΠ³ΠΎ языка (ΠΈΠ½ΠΎΠ³Π΄Π° Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠ³ΠΎ PSQL), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся Π½Π°Π±ΠΎΡ€ΠΎΠΌ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ SQL, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… программистами вмСстС с Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠΌ языка ESQL для написания исходных ΠΊΠΎΠ΄ΠΎΠ² для Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹Ρ… ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ ΠΈ Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€ΠΎΠ². Π Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ PSQL Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠΌ выполнСния, условныС выраТСния ΠΈ срСдства ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ошибок. Π―Π·Ρ‹ΠΊ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ многострочных Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π½Π°Π±ΠΎΡ€ΠΎΠ², ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ осущСствлСн прямой доступ с использованиСм ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² SELECT.

Из языка ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ конструкции SQL, Π² частности всС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ DDL. ΠŸΡ€ΠΈ этом Π² Firebird 1.5 ΠΈ Π²Ρ‹ΡˆΠ΅ Π² PSQL поддСрТиваСтся синтаксис EXECUTE STATEMENT для выполнСния ΠΊΠΎΠΌΠ°Π½Π΄ DSQL, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΡ… Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ DDL.

PSQL для Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹Ρ… ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ ΠΈ Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€ΠΎΠ² ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ описываСтся Π² части VII.

Π”ΠΈΠ°Π»Π΅ΠΊΡ‚Ρ‹ SQL

Π’ Firebird ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΠΈ Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠΌΠ΅ΡŽΡ‚ Π΄ΠΈΠ°Π»Π΅ΠΊΡ‚ SQL, Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ сСрвСру, ΠΊΠ°ΠΊ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ возмоТности ΠΈ элСмСнты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ ΠΏΠΎ- Ρ€Π°Π·Π½ΠΎΠΌΡƒ Π² Π±Π°Π·Π°Ρ… Π΄Π°Π½Π½Ρ‹Ρ… Borland InterBase Π΄ΠΎ вСрсии 6.

Π”ΠΈΠ°Π»Π΅ΠΊΡ‚ позволяСт сСрвСру Firebird Ρ€Π°ΡΠΏΠΎΠ·Π½Π°Π²Π°Ρ‚ΡŒ, ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΈ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π½Π½ΠΈΠ΅ возмоТности ΠΈ элСмСнты Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… (Π΄ΠΈΠ°Π»Π΅ΠΊΡ‚ 1), ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ доступ ΠΊ этим старым Π΄Π°Π½Π½Ρ‹ΠΌ для ΠΈΡ… прСобразования Π² Π½ΠΎΠ²Ρ‹Π΅ возмоТности ΠΈ элСмСнты (Π΄ΠΈΠ°Π»Π΅ΠΊΡ‚ 2) ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ возмоТностСй, элСмСнтов ΠΈ ΠΏΡ€Π°Π²ΠΈΠ» Firebird для ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ вновь создаваСмых Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… (Π΄ΠΈΠ°Π»Π΅ΠΊΡ‚ 3).

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ созданиС Π½ΠΎΠ²ΠΎΠΉ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π² Firebird Π΄ΠΈΠ°Π»Π΅ΠΊΡ‚Π° 1 ΠΈΠ»ΠΈ Π΄ΠΈΠ°Π»Π΅ΠΊΡ‚Π° 3. НС рСкомСндуСтся ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ Π±Π°Π·Ρ‹ Π² Π΄ΠΈΠ°Π»Π΅ΠΊΡ‚Π΅ 1, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ, Π² ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌ счСтС, прСкратится Π΅Π³ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ°. НСвозмоТно созданиС Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π΄ΠΈΠ°Π»Π΅ΠΊΡ‚Π° 2, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π΄ΠΈΠ°Π»Π΅ΠΊΡ‚ 2 ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для конвСртирования Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… Π΄ΠΈΠ°Π»Π΅ΠΊΡ‚Π° 1 Π² Π΄ΠΈΠ°Π»Π΅ΠΊΡ‚ 3. Π”ΠΈΠ°Π»Π΅ΠΊΡ‚ 2 ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊ клиСнтскому соСдинСнию.

РСсурсы SQL

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 1 содСрТит Π°Π»Ρ„Π°Π²ΠΈΡ‚Π½Ρ‹ΠΉ список описаний Π²Π½Π΅ΡˆΠ½ΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.