====== Разновидности языка SQL ====== ===== Версии сервера ===== ^ 0.9 ^ 1.0 ^ 1.5.3 ^ 1.5.4 ^ 1.5.5 ^ 2.0 ^ 2.0.3 ^ 2.0.4 ^ 2.1 ^ 2.5 ^ 3.0 ^ | Да | Да | Да | Да | Да | Да | Да | Да | Да | Да | Да | ===== Описание ===== Подмножество языка SQL для SQL-сервера Firebird имеет следующие разновидности: SQL - это собственно язык SQL, без процедурной части Procedural SQL (PSQL) - разновидность, применяемая при создании хранимых [[create_procedure|процедур]]/[[create_trigger|триггеров]]/[[execute_block|PSQL-блоков]]. Имеет управляющие структуры [[FOR]], [[WHILE]], [[IF]]. Dynamic SQL (DSQL) - механизм динамических запросов, не скомпилированных заранее. Сюда относится всё, что можно сделать с помощью isc_dsql_xxx API. Embedded SQL (ESQL) - надстройка над SQL, понимаемая препроцессором gpre, который преобразует SQL в BLR и вставляет в программу вызовы низкоуровневого API. О динамических запросах тут речь уже не идёт. Т.к. gpre давно не обновлялся, то он не понимает некоторые новые конструкции SQL. Соответственно PSQL, DSQL, ESQL - это надстройки над SQL, определяемые окружением, которое выполняет запросы (сам сервер, "новое" АПИ клиента, "старое" АПИ клиента). ===== Пример ===== ===== См. также ===== ===== Источник ===== Владислав Хорсун, разработчик сервера. Цитата взята из конференции.