Программирование >>  Построение запросов sql 

1 ... 14 15 16 [ 17 ] 18 19 20 ... 101


Таблица 2.5. Типы данных SQL, используемых в СУБД Firebird

Тип данных

Размер

Диапазон/Точность

Описание

Строки символов постоянной

CHAR(n)

n символов

От 1 до 32767 байт

длины

0 < n <= 32767

Строки символов переменной

VARCHAR(n)

n символов

От 1 до 32765 байт

длины

0 < n <= 32765

SMALLINT

16 бит

От -32768 до 32767

Знаковые целые числа (короткие)

INTEGER

32 бита

От -2147483648 до 2147483647

Знаковые целые числа

BIGINT

64 бита

-9223372036854775808 до 9223372036854775807 (от -263 до 263-1)

Знаковые целые числа (большие)

Масштабируемые десятичные

NUMERIC(p,s)

Переменный

P=1 до 15; s=1 до 15

числа; p-точность; s-число знаков после запятой (масштаб); p>s

DECIMAL(p,s)

То же, что и NUMERIC(p,s)

DOUBLE PRECISION

От 1.7*10-308 до 1.7*10308

Числа с плавающей запятой

64 бита

высокой точности; 15 разрядов

после запятой

FLOAT

32 бита

От 3.4*10-38 до 3.4*1038

Числа с плавающей запятой; 7 разрядов после запятой

DATE

32 бита

От 1 января 100 года до 27 февраля 32768 года

Календарная дата

TIME

32 бита

От 00:00 до 23:59:59

Время дня

Дата от 1 января 100 года

TIMESTAMP

2*32 бита

до 27 февраля 32768 года и время от 00:00 до 23:59:59

Календарная дата и время

BLOB

Переменный

Динамически изменяемый; для хранения больших объемов даннхх

Десятичными числовыми типами с фиксированной точкой являются типы

NUMERIC и DECIMAL.

При определении типа NUMERIC или DECIMAL Firebird производит преобразование типов тремя способами:

- определенные без p и s - всегда сохраняются как INTEGER;

- определенные с p, но без s - в зависимости от спецификации p, сохраняются как SMALLINT, INTEGER или BIGINT;

- определенные с p и s - в зависимости от спецификации p, сохраняются как SMALLINT, INTEGER или BIGINT.

В табл. 2.6 содержатся сведения о том, как Firebird сохраняет десятичные

типы данных NUMERIC (или DECIMAL).



Таблица 2.6. Преобразование типов данных

Определяемый тип

Тип, сохраняемый Firebird

NUMERIC

INTEGER

NUMERIC(4)

SMALLINT

NUMERIC(9)

INTEGER

NUMERIC(10)

BIGINT

NUMERIC(4,2)

SMALLINT

NUMERIC(9,3)

INTEGER

NUMERIC(10,4)

BIGINT

DECIMAL

INTEGER

DECIMAL(4)

INTEGER

DECIMAL(9)

INTEGER

DECIMAL(10)

BIGINT

DECIMAL(4,2)

INTEGER

DECIMAL(9,3)

INTEGER

DECIMAL(10,4)

BIGINT

Приведенные в табл. 2.6 данные по преобразованию десятичных типов следует понимать следующим образом. Если, например, определить десятичный тип с p<9 и s<3, то тип NUMERIC(9,3) будет преобразован в INTEGER, но, приняв определение для p>10 и s>4, будет получен тип BIGINT.

Числовыми типами с плавающей точкой являются типы DOUBLE PRECISION и FLOAT. В этих типах положение десятичной точки не зафиксировано. Столбцы с типом DOUBLE PRECISION или FLOAT следует определять, когда нужно хранить числа с изменяющимся масштабом.

Типы данных даты и времени представлены типами DATE, TIME и

TIMESTAMP.

Формат типа DATE задается в виде ДД.MM.ГГГГ, MM/ДД/ГГГГ, ГГГГ-ММ-ДД, MM:ДД:ГГГГ или ДД-МММ-ГГГГ. При этом ММ - две цифры месяца (МММ - первые три буквы в английском названии месяца), ДД - две цифры дня, ГГГГ - четыре цифры года.

Для формата ДД-МММ-ГГГГ в качестве МММ употребляются первые три буквы латинского названия месяца (табл. 2.7).

Например, дату 17 декабря 2001 года можно записать как один из следующих вариантов: 17.12.2001, 12/17/2001, 2001-12-17, 12:17:2001 или 17-DEC-2001.

Тип данных TIME включает время. Чтобы задать время, необходимо использовать описание ЧЧ/МН/СК или ЧЧ:МН:СК. При этом ЧЧ - две цифры часов, МН - две цифры минут, СК - две цифры секунд.

Чтобы задать дату и время вместе, необходимо использовать тип TIMESTAMP с описанием MM/ДД/ГГГГ/ЧЧ/МН/СК или ДД.ММ.ГГГГ ЧЧ:МН:СК.



Таблица 2.7. Сокращения названий месяцев

Название месяца

Используемое обозначение

Январь

Февраль

Март

Апрель

Июнь

Июль

Август

Сентябрь

Октябрь

Ноябрь

Декабрь

Если в таблице БД или в нескольких таблицах присутствуют столбцы, обладающие одними и теми же характеристиками, можно описать тип такого столбца и его поведение через домен, а затем поставить в соответствие каждому из одинаковых столбцов имя домена. Домен определяет все потенциальные значения, которые могут быть присвоены атрибуту.

Получить список всех типов данных можно из системной таблицы RDB$TYPES с помощью следующего запроса: SELECT * FROM RDB$TYPES;.

В языке SQL обеспечивается возможность использования в различных операциях не только значений тех типов, для которых предопределена операция, но и значений типов, неявным или явным образом приводимых к требуемому типу. Кроме неявного преобразования типов данных (например, преобразования десятичных типов - табл. 2.6), существует универсальная функция CAST, с помощью которой значения одного типа преобразовываются в значения другого типа, если такие изменения вообще возможны. Подробнее данная функция будет рассмотрена далее.

Ориентированный на работу с таблицами, SQL не имеет достаточно средств для создания сложных прикладных программ. Поэтому в разных СУБД он либо используется вместе с языками программирования высокого уровня (Си, Паскаль и др.), либо включен в состав команд специально разработанного языка СУБД (язык систем dBASE, R:BAE и т. п.). Унификация полных языков современных профессиональных СУБД достигается за счет внедрения объектно-ориентированного языка четвертого поколения 4GL. Он позволяет организовывать циклы, условные предложения, меню, экранные формы, сложные запросы к базам данных с интерфейсом, ориентированным как на алфавитно-цифровые терминалы, так и на оконный графический интерфейс.



1 ... 14 15 16 [ 17 ] 18 19 20 ... 101

© 2006 - 2024 pmbk.ru. Генерация страницы: 0.001
При копировании материалов приветствуются ссылки.
Яндекс.Метрика