Хелен Борри - Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ
- Название:Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ
- Автор:
- Жанр:
- Издательство:БХВ-Петербург
- Год:2006
- Город:Санкт-Петербург
- ISBN:5-94157-609-9
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Хелен Борри - Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ краткое содержание
Рассмотрены вопросы, необходимые разработчику для создания клиент-серверных приложений с использованием СУБД Firebird, явившейся развитием СУБД Borland Interbase 6. Содержится обзор концепций и моделей архитектуры клиент/сервер, а также практические рекомендации по работе с клиентскими библиотеками Firebird. Детально описаны особенности типов данных SQL, язык манипулирования данными (Data Manipulation Language, DML), а также синтаксис и операторы языка определения данных ( Data Definition Language, DDL). Большое внимание уделено описанию транзакций и приведены советы по их использованию при разработке приложений. Описано программирование на стороне клиента и сервера написание триггеров и хранимых процедур, создание и использование событий базы данных, обработка ошибок в коде на сервере и многое другое. Материал сопровождается многочисленными примерами, советами и практическими рекомендациями.
Для разработчиков баз данных
Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
Возвращаемое значение
NULL, если VALUE1 и VALUE равны; если равенства нет, будет возвращено VALUE 1
Замечания
INULLIFO имеет результат, эквивалентный использованию внутренней SQL-функции NULLIFO, реализованной в Firebird 1.5 и выше для числовых типов с фиксированной точкой
Внешняя функция INULLIFO существует в трех реализациях: две для 32-битовых и 16-битовых типов (inullif и dnullif), а третья для 64- битовых типов (i64nullif). Если вы хотите использовать ее с любыми числовыми типами с фиксированной точкой, объявите все реализации. Объявления можно найти в скрипте fbudf.sql в каталоге /UDF вашей инсталляции Firebird.
Не объявляйте реализацию i64nullif для баз данных, которые не поддерживают 64-битовые числа- например, для не перенесенной базы данных InterBase 5
Пример
Следующий оператор приведет к тому, что значение STOCK в таблице PRODUCTS будет установлено в NULL для всех строк, где оно имеет значение 0:
UPDATE PRODUCTS
SET STOCK = iNULLIF(STOCK, 0)
Связанные или похожие функции
См. также NULLIF() , sNullIf()
FBUDF |
INVL(VALUE1, VALUE2) |
Linux, Win32 |
Эта функция пытается повторить функцию Oracle NVL() только для числовых типов с фиксированной точкой. Она возвращает указанное непустое значение, если заданный столбец имеет значение NULL |
Аргументы |
VALUE1: столбец или выражение, включающее столбец. Типы с плавающей точкой не поддерживаются. При необходимости используйте в вашем выражении CAST() для преобразования значения в числовой тип. VALUE2: выражение или константа, которая будет возвращаемым значением, если VALUE1 дает NULL |
Возвращаемое значение |
Непустое значение. Если VALUE1 не является NULL, то оно будет возвращаемым значением; иначе будет возвращаться VALUE1. Если и VALUE1, и VALUE2 имеют значение NULL, то будет возвращено значение NULL |
Замечания |
Логически эта функция эквивалентна простой форме функции COALESCE О версии 1.5, когда она используется со столбцом числового типа с фиксированной точкой, а именно COALESCE(VALUE1, VALUE2) . Она должна рассматриваться как нерекомендуемая для Firebird версии 1.5 и выше. Внешняя функция iNVL() существует в трех реализациях: две для 32-битовых и 16-битовых типа (invl и dnvi), а третья для 64-битовых типов (i64nvi). Если вы хотите использовать ее с любыми числовыми типами с фиксированной точкой, объявите все реализации. Объявления можно найти в скрипте fbudf.sql в каталоге /UDF вашей инсталляции Firebird. Не объявляйте реализацию i64nvi для баз данных, которые не поддерживают 64-битовые числа - например, для не перенесенной базы данных InterBase 5 |
Пример |
Следующий запрос возвращает 0, если STOCK имеет значение NULL: SELECT PRODUCT ID, PRODUCT NAME, INVL(STOCK, 0) FROM PRODUCTS; |
Связанные или похожие функции |
См. также sNVL(), iNullIf(), внутреннюю функцию COALESCE() |
FBUDF |
SNULLIF(VALUE1, VALUE2) |
Linux, Win32 |
Возвращает NULL для подвыражения, если оно иначе возвращает значение этого подвыражения. Применимо только для символьных типов и должно быть использовано только в Firebird 1,0.x. В Firebird 1.5 и выше используйте NULLIFO |
Аргументы |
VALUE1: столбец или вычисляемое выражение. VALUE2: константа или выражение, с которым сравнивается VALUE1. ЕСЛИ они равны, SNULLIF вернет NULL |
Возвращаемое значение |
NULL, если VALUE1 и VALUE2 равны. Если не равны, то возвращается VALUE1 |
Замечания |
SNOLLIF имеет результат, эквивалентный использованию внутренней функции SQL NULLIFO, реализованной в Firebird 1.5 и выше с символьными типами |
Пример |
Следующий запрос устанавливает значение столбца IS_REGISTERED в NULL для всех столбцов, где его значение ' Т', a REGISTERED имеет значение NOLL: UPDATE ATABLE SET IS REGISTERED = SNOLLIF(IS REGISTERED, 'T') WHERE REGISTRATION_DATE IS NULL; |
Связанные или похожие функции |
См. также iNullif(). Для Firebird 1.5 и вышё см. внутреннюю функцию NULLIF() |
FBUDF |
SNVL(VALUE1, VALUE2) |
Linux, Win32 |
Эта функция пытается повторить функцию Oracle NVLO только для строковых типов. Она возвращает указанное непустое значение, если заданный столбец имеет значение NULL |
Аргументы |
VALUE1: столбец или выражение, включающее столбец. VALUE2: выражение или константа, которая будет возвращаемым значением, если VALUE1 дает NOLL |
Возвращаемое значение |
Непустое значение. Если VALUE1 не является NULL, то оно будет возвращаемым значением; иначе будет возвращаться VALUE2. Если и VALUE1, и VALUE2 имеют значение NULL, ТО будет возвращено значение NULL |
Замечания |
Логически эта функция эквивалентна простой форме функции COALESCE() версии 1.5, когда она используется со столбцом символьного типа, а именно COALESCE(VALUE1, VALUE2). Она должна рассматриваться как нерекомендуемая для Firebird 1.5 и выше |
Пример |
Следующий оператор вычисляет и выводит столбец времени выполнения BIRTH YEAR для каждого студента. Если это значение вычисляется в NULL, то вместо дня рождения выводится 'Not known' (Неизвестно): SELECT FIRST_NAME, LAST_NAME, SNVL(CAST(EXTRACT(YEAR FROM BIRTH DATE) AS VARCHAR (9) ) , ' Not known') AS BIRTH_YEAR FROM STUDENT_REGISTER; |
Связанные или похожие функции |
См. также iNVL(), sNullif() , внутреннюю функцию COALESCE() |
Математические функции
IB_UDF |
ABS(VALUE) |
Linux, Win32 |
Возвращает абсолютное значение числа |
Аргументы |
VALUE является столбцом или выражением, которое совместимо с типом DOUBLE PRECISION |
Возвращаемое значение |
Число DOUBLE PRECISION |
Пример |
Этот оператор суммирует все отрицательные значения и возвращает итог в виде положительного числа: SELECT ABS(SUM(ASSET_VALUE)) AS LIABILITY FROM ASSET_REGISTER WHERE ASSET VALUE < 0; |
Похожие функции |
См. другую внешнюю функцию f_DoubleAbs(), которая выполняет те же действия |
IB_UDF |
BIN_AND(VALUE1, VALUE2) |
Linux, Win32 |
Возвращает результат побитовой операции AND (И), выполняемой с двумя входными значениями |
Аргументы |
VALUE1 и VALUE2, являются столбцами или выражениями, которые преобразуются к типу SMALLINT или INTEGER |
Возвращаемое значение |
Значение INTEGER |
Пример |
SELECT BIN_AND (128,24) AS ANDED_ RESULT FROM RDB $ DATABASE; |
IB_UDF |
BIN_OR(VALUE1, VALUE2) |
Linux, Win32 |
Возвращает результат двоичной (побитовой) операции OR (ИЛИ), выполняемой с двумя входными значениями |
Аргументы |
VALUE1 и VALUE2 являются столбцами или выражениями, которые преобразуются К типу SMALLINT или INTEGER |
Возвращаемое значение |
Значение INTEGER |
Пример |
SELECT BIN_OR(128, 24) AS ORED_RESULT FROM RDB$DATABASE; |
IB_UDF |
BIN_XOR(VALUE1, VALUE2) |
Интервал:
Закладка: