Руководство по языку SQL Глава 2. Background i Букет инструментов SQL (SQL flavors) Это руководство описывает язык SQL, который поддерживаются Firebird. Однако имеются различные подмножества SQL, которые используются в различных областях и их требуется различать. А именно это: Динамический SQL (DSQL, Dynamic SQL) Процедурный SQL (PSQL, Procedural SQL) Встроенный SQL (ESQL, Embedded SQL) Интерактивный SQL (ISQL, Interactive SQL) Динамический SQL является основной частью языка, о котором сообщает Часть 2 (SQL/Foundation – SQL/Основы) спецификации SQL. DSQL представляет собой конструкции, которые передаются клиентскими приложениями с помощью Firebird API и обрабатываются сервером базы данных. Процедурный SQL является расширением Динамического SQL, в котором дополнительно присутствуют составные операторы, содержащие локальные переменные, присваивание, циклы и другие процедурные конструкции. PSQL относится к Части 4 (SQL/PSM) спецификации SQL. Изначально расширение PSQL было доступно только лишь в постоянно хранимых базах модулях (процедурах и триггерах), но сравнительно недавно они стали также доступны в Динамическом SQL (смотри EXECUTE BLOCK). Встроенный SQL определяет DSQL подмножество, поддерживаемое средством Firebird GPRE – приложение, которое позволяет вам внедрять SQL конструкции в ваш непосредственный язык программирования (C, C++, Pascal, Cobol и так далее) и производить процедуру обработки этих внедренных конструкций в правильный вызов Firebird API. Пожалуйста, заметьте, что только часть конструкций и выражений DSQL поддерживается в ESQL. Интерактивный SQL подразумевает собой язык, который может быть использован для работы с инструментом Firebird ISQL – приложением командной строки для интерактивного доступа при помощи SQL к базам данных. ISQL является обычным клиентским приложением, для него 1 Руководство по языку SQL обычный язык – это язык DSQL. Однако приложение поддерживает несколько дополнительных команд. Оба языковых подмножества, как DSQL, так и PSQL полностью представлены в данном руководстве. Из набора инструментария ни ESQL, ни ISQL не описаны здесь отдельно, за исключением тех мест, где это не указано явно. Диалекты SQL SQL диалект – это термин, который определяет специфические особенности языка SQL, которые доступны во время доступа с его помощью к базе данных. SQL диалект может быть определен, как на уровне базы данных, так и на уровне коннекта к базе данных. Всего три диалекта доступны сейчас: В Диалекте 1 и дата и время обе хранятся в поле с типом данных DATE и имеется тип данных TIMESTAMP, который идентичен DATE. Двойные кавычки используются для разграничения строковых данных. Точность типов данных NUMERIC и DECIMAL меньше чем в Диалекте 3, в случае если значение точности более 9, Firebird, в базе, хранит такие значения как длинные значения с плавающей точкой. BIGINT не является доступным типом данных. Идентификаторы являются не зависящими от регистра. Значение генераторов хранится как 32 битное целое. Диалект 2 доступен только в клиентском соединении к Firebird и не может быть применен к базе данных. Он предназначен для того, чтобы помощь в отладке в случае возможных проблем с целостностью данных при проведении миграции с диалекта 1 на 3. Диалект 3 базы данных позволяет числа (типы данных DECIMAL и NUMERIC) хранить внутри базы данных как длинные значения с фиксированной точкой (масштабируемые целые числа) в случае если точность числа меньше чем 9. Тип данных TIME доступен и используется для хранения только значения только времени. Тип данных DATE хранит информацию о дате. Тип данных BIGINT доступен в качестве целого 64-х битного типа данных. Двойные кавычки могут использоваться, но только для идентификаторов которые являются зависимыми от регистра, а не для строковых данных, для которых используют одинарные кавычки. Значения генераторов хранятся как 64-ти битные целые значения. 2 Руководство по языку SQL Цель Диалекта 1 обеспечить поддержку для унаследованных (пре версия IB6) Interbase приложений, так, что они будут работать так же, с Firebird. Диалект 2 используется как промежуточный диалект, предназначенный для разрешения вопросов при миграции в Диалект 3. Для вновь разрабатываемых баз данных и приложений настоятельно рекомендуем использовать Диалект 3. Как для базы данных, так и для коннекта к базе данных значения параметра диалект должны соответствовать, за исключением случая миграции, когда применяется Диалект 2. Это руководство описывает семантику SQL третьего диалекта, если другое не указанно отдельно. ii Фон, предпосылки, происхождение, поднаготная (англ.) 3