Хелен Борри - Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ
- Название:Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ
- Автор:
- Жанр:
- Издательство:БХВ-Петербург
- Год:2006
- Город:Санкт-Петербург
- ISBN:5-94157-609-9
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Хелен Борри - Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ краткое содержание
Рассмотрены вопросы, необходимые разработчику для создания клиент-серверных приложений с использованием СУБД Firebird, явившейся развитием СУБД Borland Interbase 6. Содержится обзор концепций и моделей архитектуры клиент/сервер, а также практические рекомендации по работе с клиентскими библиотеками Firebird. Детально описаны особенности типов данных SQL, язык манипулирования данными (Data Manipulation Language, DML), а также синтаксис и операторы языка определения данных ( Data Definition Language, DDL). Большое внимание уделено описанию транзакций и приведены советы по их использованию при разработке приложений. Описано программирование на стороне клиента и сервера написание триггеров и хранимых процедур, создание и использование событий базы данных, обработка ошибок в коде на сервере и многое другое. Материал сопровождается многочисленными примерами, советами и практическими рекомендациями.
Для разработчиков баз данных
Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
SQL> COMMIT;
SQL> SET SQL DIALECT 1;
WARNING: client SQL dialect has been set to 1 when connecting to Database
SQL dialect 3 database.
(Предупреждение: SQL-диалект клиента установлен в 1 при соединении с базой данных с SQL-диалектом 3)
SQL>
Здесь все в порядке, потому что вы только собираетесь соединиться с базой данных диалекта 1:
SQL> CONNECT 'RSERVER:D:\DATA\SAMPLE\legacy.gdb'
CON> user 'SYSDBA' password 'icur2yy4m';
SQL> SHOW SQL DIALECT;
Client SQL dialect is set to: 1 and database dialect is: 1
(Диалект SQL клиента установлен в: 1, диалект базы данных: 1)
Множество свободно распространяемых и коммерческих инструментов администратора с графическим интерфейсом предоставляют возможность интерактивной установки диалекта клиента. Компоненты доступа к базе данных и драйверы имеют свойства или другие механизмы для передачи диалекта структуре соединения API.
Следующие четыре главы подробно описывают типы данных, поддерживаемые для каждой из основных категорий данных: числа, дата/время, символы и BLOB. Глава 13, последняя глава в этой части, описывает реализацию доменов в Firebird для объединения типа данных с группой атрибутов в одно воспроизводимое определение.
ГЛАВА 9. Числовые типы данных.
Firebird поддерживает числовые типы данных с фиксированной точкой (точные числа) и с плавающей точкой (приблизительная точность). Десятичными типами с фиксированной точкой являются целые типы с нулевым масштабом SMALLINT, INTEGER и в диалекте 3 BIGINT, а также два почти одинаковых масштабируемых числовых типа: NUMERIC и DECIMAL. Два типа с плавающей точкой: FLOAT (низкая точность) и DOUBLE PRECISION [15] Точность задает количество значащих цифр (игнорируя конечные или начальные нули), которое может храниться в типе данных без переполнения или потери данных.
.
Firebird не поддерживает беззнаковый целочисленный тип. В табл. 9.1 показаны диапазоны значений каждого числового типа в Firebird.
Таблица 9.1. Границы числовых типов Firebird
Числовой тип | Минимум | Максимум |
SMALLINT | -32,768 | 32,767 |
INTEGER | -2,147,483,648 | 2,147,483,647 |
BIGINT | -2(^63^) | 2(^63^) - 1 |
(Для мазохистов) | -9223372036854775808 | 9223372036854775807 |
NUMERIC* | Меняется | Меняется |
DECIMAL* | Меняется | Меняется |
FLOAT | ||
Положительные | 1.175 * 10(^38^) | 3.402 * 10(^38^) |
Отрицательные | -3.402 * 10(^38^) | |
DOUBLE PRECISION | ||
Положительные | 2.225 * 10(^308^) | 1.797 * 10(^308^) |
Отрицательные | -1.797 * 10(^308^) |
* Границы для типов NUMERIC и DECIMAL изменяются в зависимости от способа хранения и масштаба. Границы всегда будут соответствовать тому типу, в котором эти данные будут сохраняться [16] Хранимыми типами являются SMALLINT, INTEGER или BIGINT в зависимости от объявлен-
.
Операции с числовыми типами
* Операции сравнения. Используйте стандартные операторы отношений (=, <, >, >=, <=, <> или !=) [17] Использование "!=" в качестве замены для "<>" допустимо в Firebird, но не соответствует стандарту. Те, у кого хорошее экстрасенсорное восприятие, будут придерживаться "о", чтобы сделать код более удобным для чтения.
.
Возможны сравнения строк с использованием таких операторов SQL, как CONTAINING, STARTING WITH и LIKE. В данных операциях числа трактуются как строки. Более подробную информацию об этих операторах см. в главе 21.
* Арифметические операции. Могут быть использованы стандартные бинарные арифметические операторы (+, * и /).
* Операции преобразования. Firebird автоматически выполняет преобразования между числами с фиксированной точкой, с плавающей точкой и строковыми типами данных при выполнении операций над смешанными типами данных. Когда операция является сравнением или арифметической операцией, включающей числовые и нечисловые типы данных, то сначала данные преобразуются в числовой тип, а затем выполняется операция.
* Операции сортировки. По умолчанию запрос возвращает строки точно в том порядке, в котором находит их в таблице, т. е., скорее всего, неупорядоченные. Вы можете отсортировать строки по значениям целочисленных столбцов, используя предложение ORDER BY оператора SELECT В убывающем или возрастающем порядке. Если числа сохраняются как символьные типы, то порядок сортировки будет алфавитно-цифровым, а не числовым, например, 1 - 10 - 11 ... 19 - 2.
Целые типы
Все целые типы являются точными знаковыми числами с нулевым масштабом. Firebird поддерживает три вида разной точности целых типов данных:
* SMALLINT - является знаковым коротким целым с диапазоном от -32,768 до 32,767;
* INTEGER - является знаковым длинным целым с диапазоном от-2 147 483 648 до 2 147 483 647;
* BIGINT - является знаковым 64-битовым целым с диапазоном от 2(^63^) до 2(^63^) - 1. Недоступен в диалекте 1.
! ! !
ПРИМЕЧАНИЕ. В Firebird 1.0.x в диалекте 3 объявляйте 64-битовые целые как NUMERIC(18,0) или DECIMAL (18,0). Всегда допустимо использование этого синтаксиса для целых типов, при этом можно опускать второй аргумент (масштаб).
. ! .
Более подробную информацию о масштабе, точности и операциях, которые могут выполняться для чисел с фиксированной точкой, см. далее в разд. "Масштабируемые типы с фиксированной точкой".
Следующие два оператора создают домен и столбец, соответственно, с типами данных SMALLINT и INTEGER:
CREATE DOMAIN RGB_RED_VALUE AS SMALLINT;
/* */
CREATE TABLE STUDENT_ROLL (
STUDENT_ID INTEGER,
. . . );
Каждый из следующих операторов создает домен, который является 64-битовым целым:
CREATE DOMAIN IDENTITY BIGINT CHECK(VALUE >=0);
/* Firebird 1.5 и выше */
CREATE DOMAIN IDENTITY NUMERIC(18,0) CHECK(VALUE >=0);
SMALLINT
SMALLINT является 2-байтовым целым, предоставляющим компактное хранение для целых чисел с ограниченным диапазоном значений. Например, SMALLINT может быть подходящим для хранения значений цветов в форме RGB, как показано в предыдущем примере создания домена.
SMALLINT часто используется для определения булевых значений, обычно 0 = ложь, 1 = истина. Пример такого использования можно найти в разд. "Объявление булевых доменов" главы 13.
INTEGER
INTEGER является 4-байтовым целым. В диалекте 1 генераторы (см. разд. "Генераторы" этой главы) генерируют значения типа INTEGER. Вы можете хранить такие целые в столбцах BIGINT без преобразования.
BIGINT, NUMERIC(18,0)
Доступны только в диалекте 3. Это 8-байтовое целое, полезное для хранения целых чисел с очень маленькими и очень большими значениями. В диалекте 3 генерируются числа типа BIGINT (см. разд. "Генераторы").
Автоинкремент или тип IDENTITY
Firebird не поддерживает типы автоинкремента или IDENTITY, которые вы могли встретить в других системах управления базами данных. Что у него есть, так это средство числовых генераторов и возможность поддерживать независимые, именованные серии чисел BIGINT. Каждая серия известна как генератор. Техника их использования для реализации и поддержки первичных ключей и других автоматических инкрементных серий описана в главе 31.
Читать дальшеИнтервал:
Закладка: