Вход/Регистрация
Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ
вернуться

Борри Хелен

Шрифт:

Важной функцией триггеров является проверка с использованием выражений поступающих новых значений, а также использование других выражений для преобразования или создания значений для текущей строки или для строк в связанных таблицах. Например, следующий общий триггер проверяет, является ли значение NULL, и если да, то вызывает функцию для присваивания ему значения:

CREATE TRIGGER BI_MEMBERSHIP FOR MEMBERSHIP

ACTIVE BEFORE INSERT POSITION 0

AS

BEGIN

IF (NEW.MEMBER_ID IS NULL) THEN

NEW. MEMBER_I D - GEN_ID(GEN_MEMBER_ID, 1);

END

Подробную информацию о написании триггеров и хранимых процедур см. в части VII.

Вызовы функций

После установки Firebird содержит минимальный набор внутренних функций SQL. Хотя новые функции появляются время от времени, тем не менее сохраняется одно из основных достоинств Firebird: малый объем памяти, занимаемый сервером.

Функциональные возможности сервера могут быть легко расширены за счет его возможности получать доступ к функциям из внешних библиотек. Традиционно такие функции называются функциями, определенными пользователями (User-Defined Functions, UDF). Более корректно называть их внешними библиотеками функций. В реальности большинство администраторов баз данных используют хорошо протестированные библиотеки, находящиеся в общем пользовании и свободно распространяемые.

Внутренние функции SQL

В табл. 21.7 представлены внутренние функции SQL, доступные в Firebird.

Таблица 21.7. Внутренне реализованные функции SQL

Функция

Тип

Назначение

CAST

Преобразование

Преобразует столбец из одного типа данных в другой

EXTRACT

Преобразование

Выделяет части даты и времени (год, месяц, день и т.д.) из значений DATE, TIME и TIMESTAMP

SUBSTRING

Строка

Отыскивает последовательность символов в строке

UPPER

Строка

Преобразует символы в строке в верхний регистр

GEN_ID

Генерация

Возвращает значение генератора

AVGO

Агрегат

Вычисляет среднее значение набора значений

COUNT

Агрегат

Возвращает количество строк, которые удовлетворяют условию поиска запроса

MAX

Агрегат

Отыскивает максимальное значение в наборе значений

MIN

Агрегат

Отыскивает минимальное значение в наборе значений

SUM

Агрегат

Суммирует значения в наборе числовых значений

Функции преобразования

Функции преобразования трансформируют типы данных, например, путем преобразования их из одного типа данных в другой совместимый тип, изменения масштаба или точности числовых значений или убирая какой-нибудь наследуемый атрибут из элемента данных. Можно сказать, что многие строковые функции также являются функциями преобразования, потому что они преобразуют способ хранения строковых значений, представленных в выходном наборе.

CAST

Функция CAST широко используется. Она позволяет преобразовывать элемент данных одного типа данных в другой тип или трактовать его как другой тип данных.

Доступность

DSQL, PSQL, ISQL, ESQL, Firebird 1.5 и выше. Любая платформа.

Синтаксис

CAST(значение AS <тип-данных>)

Дополнительные ключевые слова

Фраза AS <тип-данных> с аргументом является обязательной.

Аргументы

значение является столбцом или выражением, которое преобразуется к типу данных, допустимому для преобразования в тип данных, названный в ключевом слове AS.

<тип-данных> должен быть родным типом данных Firebird. Нельзя указывать имя домена. Рис. 8.1 показывает все допустимые преобразования из одного типа в другой.

Возвращаемое значение

Функция возвращает вычисляемое поле заданного типа данных.

Пример

В следующем фрагменте PSQL поле LOG_DATE типа данных TIMESTAMP преобразуется в тип данных DATE, потому что для вычисления нужно получить целые дни:

. . .

IF (CURRENT_DATE - CAST (LOG_DATE AS DATE) = 30) THEN

STATUS = '30 DAYS';

Следующий оператор выбирает значение из столбца типа INTEGER, преобразует его в строку и соединяет со столбцом типа CHAR(3) для формирования значения другого столбца:

  • Читать дальше
  • 1
  • ...
  • 168
  • 169
  • 170
  • 171
  • 172
  • 173
  • 174
  • 175
  • 176
  • 177
  • 178
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: