Giter VIP home page Giter VIP logo

langref40's Introduction

Language Reference for Firebird 4.0

Это руководство описывает язык SQL, поддерживаемый СУБД Firebird 4.0.

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

Что содержит данный документ

Данный документ содержит описание языка SQL Firebird. Он охватывает следующие основные области:

  • Общие положения;
  • Типы и подтипы данных;
  • Общие элементы языка;
  • Операторы DDL (Data Definition Language — язык создания данных);
  • Операторы DML (Data Manipulation Language — язык обращения с данными);
  • Операторы PSQL (Procedural SQL — процедурный SQL);
  • Встроенные скалярные функции;
  • Агрегатные функции;
  • Оконные и аналитические функции;
  • Системные пакеты;
  • Контекстные переменные;
  • Операторы управления транзакциями;
  • Безопасность и операторы управления доступом;
  • Операторы управления сессионным окружением;
  • Обработка ошибок. Коды и описание ошибок;
  • Зарезервированные и ключевые слова;
  • Описание системных таблиц;
  • Описание таблиц мониторинга;
  • Описание таблиц безопасности;
  • Описание таблиц плагинов;
  • Наборы символов и соответствующие им порядки сортировки.

Вопросы, не связанные с языком SQL в данном документе не рассматриваются.

Авторство

В работе над руководством принимали участие:

  • Денис Симонов;
  • Пол Винкенуг;
  • Дмитрий Филиппов;
  • Дмитрий Еманов;
  • Томас Воинк;
  • Александр Карпейкин;
  • Алексей Ковязин;
  • Дмитрий Кузьменко.

Редакторы — Александр Карпейкин, Дмитрий Кузьменко, Алексей Ковязин, Денис Симонов.

Благодарности

Благодарим Влада Хорсуна, Александра Пешкова, Павла Зотова за помощь в создании этого документа.

Обновления

Так как СУБД Firebird постоянно развивается, то изменяется и улучшается его документация. Вы можете получить самые свежие версии этого документа по адресам:

langref40's People

Contributors

sim1984 avatar

Stargazers

Dmitry Kovalenko avatar  avatar Vladimir Myasnichenko avatar  avatar  avatar  Maxim Filatov avatar Dmitry Kuzmenko avatar Popa Adrian Marius avatar Popa Marius Adrian avatar  avatar Dmitry Shumko avatar Pavel Moroz avatar Nikorda_yuridan avatar

Watchers

James Cloos avatar  avatar Dmitry Kuzmenko avatar  avatar  avatar  avatar

Forkers

jonikdk

langref40's Issues

Описание типа [LONG] FLOAT [(binary-precision)]

| [LONG] FLOAT [(binary-precision)]
binary-precision Двоичная точность. От 1 до 64 бит.

create function SF1 returns float(64) as begin end

  1. [Firebird]: Dynamic SQL Error
    SQL error code = -842
    Precision must be from 1 to 53
    At line 1, column 34

В английской доке более точная информация:

Binary precision, default is 24.

1 - 24: 32-bit single precision
25 - 53: 64-bit double precision (synonym of DOUBLE PRECISION)

<psql-module-body> vs <psql-routine-body>

В описании DECLARE PROCEDURE используют термин

::=
См. Синтаксис тела модуля

Идем в описание Синтаксис тела модуля и не находим там psql-module-body. Есть psql-routine-body.

Было бы не плохо согласовать эти две вещи.

EXTERNAL FUNCTION

5.12. EXTERNAL FUNCTION

После того как функция объявлена в базе данных, она становится в динамических и процедурных операторах, как будто они реализованы внутри языка SQL.

Как-то не по русски звучит... Или норм?

Может лучше - "... она может использоваться в ..."

?

CREATE FUNCTION и NOT NULL

В описании create function нет упоминания, что возвращаемый результат может быть объявлен как NOT NULL. Тем не менее RedExpert без проблем создает такую SFunc:

recreate function sfunc1
returns integer not null
as
begin
return 1;
end

[FB4] ALTER TRIGGER дважды определяет sql security

ALTER TRIGGER trigname
[ACTIVE | INACTIVE]
[{BEFORE | AFTER} <mutation_list>]
[POSITION number]
[SQL SECURITY {DEFINER | INVOKER} | DROP SQL SECURITY]
[<routine-body>]

Определение routine-body так же содержит правила для SQL SECURITY.

Получается что мы может определить эти правила дважды.

CREATE FUNCTION и array_datatype

В описании CREATE FUNCTION написано что можно юзать <array_datatype>. По факту, если объявлять функцию с массивами, то сервер вернет ошибку.

recreate function sfunc1
returns integer[1] not null
as
begin
return null;
end

Dynamic SQL Error; SQL error code = -104; Token unknown - line 2, column 17; [ [SQLState:42000, ISC error code:335544634]

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.