Хелен Борри - Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ
- Название:Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ
- Автор:
- Жанр:
- Издательство:БХВ-Петербург
- Год:2006
- Город:Санкт-Петербург
- ISBN:5-94157-609-9
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Хелен Борри - Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ краткое содержание
Рассмотрены вопросы, необходимые разработчику для создания клиент-серверных приложений с использованием СУБД Firebird, явившейся развитием СУБД Borland Interbase 6. Содержится обзор концепций и моделей архитектуры клиент/сервер, а также практические рекомендации по работе с клиентскими библиотеками Firebird. Детально описаны особенности типов данных SQL, язык манипулирования данными (Data Manipulation Language, DML), а также синтаксис и операторы языка определения данных ( Data Definition Language, DDL). Большое внимание уделено описанию транзакций и приведены советы по их использованию при разработке приложений. Описано программирование на стороне клиента и сервера написание триггеров и хранимых процедур, создание и использование событий базы данных, обработка ошибок в коде на сервере и многое другое. Материал сопровождается многочисленными примерами, советами и практическими рекомендациями.
Для разработчиков баз данных
Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
Возвращаемое значение
Число типа DOUBLE PRECISION
Замечания
Firebird 1.0.x и версии InterBase в этой функции имеют ошибку: log(x.y) ошибочно инвертирует аргументы и возвращает логарифм по основанию у числа x. Это было исправлено в версии 1.5. Имейте в виду, что существующие хранимые процедуры и код приложения могут иметь корректировки для этой ошибки
Пример
SELECT LOG(8, (CURRENT_TIMESTAMP - LEASE_DATE) /7) AS
LOG_WEEKS
FROM LEASE_ACCOUNT;
IB_UDF |
LOG10(VALUE) |
Linux, Win32 |
Возвращает десятичный логарифм входного числа |
Аргументы |
VALUE является столбцом или выражением, вычисляемым в число типа DOUBLE PRECISION |
Возвращаемое значение |
Число типа DOUBLE PRECISION |
Пример |
SELECT LOG1O( (CURRENT_TIMESTAMP - LEASE_DATE) / 7) AS LOG10_WEEKS FROM LEASE_ACCOUNT ; |
IB_UDF |
MODULO(VALUEl, VALUE2) |
Linux, Win32 |
Функция возвращает остаток отделения двух целых чисел |
Аргументы |
VALUE1 и VALUE2 являются столбцами или выражениями, вычисляемыми в числа типа SMALLINT или INTEGER |
Возвращаемое значение |
Число типа DOUBLE PRECISION |
Пример |
Фрагмент триггера: ...IF (MODULO(NEW.HOURS * 100, 775) > 25.0) THEN NEW.OVERTIME_HOURS = MODULO(NEW.HOURS * 100, 775) / 100; |
Связанные или похожие функции |
См. также функцию f_Modulo(), которая возвращает целое число |
IB_UDF |
PI() |
Linux, Win32 |
Возвращает значение n = 3.14159... |
Аргументы |
Аргументы отсутствуют, однако скобки требуются |
Возвращаемое значение |
Значение n в виде числа DOUBLE PRECISION |
Пример |
SELECT PI() AS PI_VALUE FROM RDB$DATABASE; |
IB_UDF |
RAND() |
Linux, Win32 |
Возвращает случайное число в диапазоне между 0 и 1. Заметьте, что эта функция не работает в Firebird 1.5 |
Аргументы |
Аргументы отсутствуют, но скобки требуются |
Возвращаемое значение |
Число типа DOUBLE PRECISION |
Замечания |
В настоящее время используется для установления начального значения генератора |
Пример |
SELECT RAND() AS RANDOM NUMBER FROM RDB$DATABASE; |
IB_UDF |
ROUND(VALCE) |
Linux, Win32 |
Округляет число с фиксированной точкой до ближайшего целого |
Аргументы |
VALUE является столбцом или выражением, вычисляемым в число с фиксированной точкой с дробными разрядами >0 |
Возвращаемое значение |
Число целого типа |
Замечания |
Это полное округление. Если цифра сразу после десятичной точки больше или равна 5, то к цифре перед десятичной точкой добавляется единица, и у числа отсекаются дробные цифры. В противном случае просто отсекаются все дробные цифры |
Пример |
Следующий оператор составляет смету на основе результата округления произведения двух чисел NUMERIC(11,2): SELECT JOB_NO, ROUND(RATE * HOURS) + 1 AS ESTIMATE FROM QUOTATION WHERE RATE IS NOT NULL AND HOURS IS NOT NULL; |
Связанные или похожие функции |
См. также TRUNCATE(), F_ROUNDFLOAT() |
IB_UDF |
SIGN(VALUE) |
Linux, Win32 |
Возвращает 0, 1 или -1 в зависимости от того, является ли входное значение положительным, нулем или отрицательным соответственно |
Аргументы |
VALUE является столбцом или выражением, вычисляемым в число типа DOUBLE PRECISION |
Возвращаемое значение |
Число типа DOUBLE PRECISION |
Пример |
Фрагмент триггера: ... IF (SIGN(NEW.CURRENT_VALUE) < 1) THEN ...; |
IB_UDF |
SQRT(VALUE) |
Linux, Win32 |
Возвращает квадратный корень числа |
Аргументы |
VALUE является столбцом или выражением, вычисляемым в число типа DOUBLE PRECISION |
Возвращаемое значение |
Число типа DOUBLE PRECISION |
Пример |
Фрагмент триггера: ... IF (SQRT(NEW.HYPOTENUSE) = SQRT(NEW.SIDE1) + SQRT(NEW.SIDE2)) THEN NEW.RIGHT ANGLED TRIANGLE = 'T'; |
FBUDF |
TRUNCATE(VALUE) |
Linux, Win32 |
Усекает тип с фиксированной точкой до следующего меньшего целого |
Аргументы |
VALUE является столбцом или выражением, вычисляемым в число с фиксированной точкой с дробными разрядами > 0 |
Возвращаемое значение |
Число целого типа |
Замечания |
Как и для некоторых других функций из этой библиотеки, вам нужно два объявления, чтобы использовать 32- и 64-битовый вход. Проверьте объявления в скрипте fdudf.sql truncate и i64truncate |
Пример |
Следующий оператор составляет смету на основе результата усечения произведения двух чисел NUMERIC (11,2): SELECT JOB_NO, TRUNCATE (RATE * HOURS) + 1 AS ESTIMATE FROM QUOTATION WHERE RATE IS NOT NULL AND HOURS IS NOT NULL; |
Связанные или похожие функции |
См. также ROUND(), F_TRUNCATE() |
Функции даты и времени
FBUDF |
DOW(VALUE) |
Linux, Win32 |
Получает тип TIMESTAMP и возвращает день недели (на английском языке) в качестве строки со смешанными строчными и прописными буквами |
Аргументы |
VALUE- столбец или выражение, результатом вычисления которого является тип TIMESTAMP |
Возвращаемое значение |
'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday' или 'Sunday' |
Пример |
Этот оператор добавляет четыре дня и возвращает день недели для настроенной даты: SELECT DOW(CURRENT_DATE + 4) FROM RDB$DATABASE; |
Связанные или похожие функции |
См. также SDOW(), внешнюю функцию EXTRACT() |
FBUDF |
SDOW(VALUE) |
Linux, Win32 |
Получает тип TIMESTAMP и возвращает день недели (на английском языке) в качестве аббревиатуры со смешанными строчными и прописными буквами |
Аргументы |
VALUE - столбец или выражение, результатом вычисления которого является тип TIMESTAMP |
Возвращаемое значение |
'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat' или 'Sun' |
Пример |
Этот оператор добавляет четыре дня и возвращает день недели для настроенной даты: SELECT SDOW(CURRENT_DATE + 4) FROM RDB$DATABASE; |
Связанные или похожие функции |
См. также DOW(), внешнюю функцию EXTRACT() |
FBUDF |
ADDDAY(VALUE1, VALUE2) |
Linux, Win32 |
Добавляет полное число дней к типу даты или времени и возвращает эту измененную дату в виде TIMESTAMP |
Аргументы |
VALUE1: столбец или выражение, результатом вычисления которого является тип даты или времени. VALUE2: количество добавляемых дней (целое число) или целое выражение |
Возвращаемое значение |
Настроенное TIMESTAMP (эквивалентно VALUE1 + VALUE2) |
Замечания |
Если входом является тип TIME, то дни будут добавлены к этому времени дня текущей даты. Если это тип DATE, ТО время дня будет полночью |
Пример |
Следующий оператор прибавляет 4 дня к текущей дате и возвращает полученную дату и время 0 часов 0 минут 0 секунд: |
Интервал:
Закладка: