Инструменты пользователя

Инструменты сайта


tipy_dannyx

Типы данных

Типы данных SQL-сервера Firebird используются при создании доменов, таблиц, просмотров, хранимых процедур, объявления контекстных переменных и параметров в PSQL-блоках/хранимых процедурах/триггерах.

Таблица типов данных

Имя Размер Точность Описание
BLOB Переменный Нет. Размер сегмента BLOB ограничивается 64К. Тип данных с динамически изменяемым размером для хранения больших данных, таких как графика, тексты, оцифрованные звуки. Базовая структурная единица — сегмент. Подтип Blob описывает содержимое.
CHAR(n) n/кол-во_байт_на_символ, т.е. зависит от кодировки от 1 до 32 767 байтов. Набор символов определяет размер символов в байтах и задает количество символов, которое может быть меньше 32К CHAR фиксированной длины или строка текста. В случае если строка меньше заявленой - она добивается пробелами с конца до заданной длины1)
CHARACTER(n) –\\– –\\– –\\–
VARCHAR(n) –\\– от 1 до 32 765 байтов. Набор символов определяет размер символов в байтах и задает количество символов, которое может быть меньше 32К CHAR переменной длины или строка текста. Конечные пробелы сохраняются, но обрезаются те, что не вмещаются в обьявленую длину2)
CHAR VARYING (n) –\\– –\\– –\\–
CHARACTER VARYING (n) –\\– –\\– –\\–
DATE 32 бита 1 января 0001 г. – 31 декабря 9999 г.Сохраняет дату в 32-битовом длинном слове
:!: в 1-м - эквивалентно TIMESTAMP
DECIMAL (precision, scale) Переменный (16, 32 или 64 бита) precision = от 1 до 18; указывает, по меньшей мере, precision количество цифр для хранения. scale = от 0 до 18. Задает количество знаков после точки. Должно быть меньше или равно precisionЧисло с десятичной точкой, имеющей после точки scale разрядов. Пример: DECIMAL(10,3) содержит число точно в следующем формате: ppppppp.sss
DOUBLE PRECISION 64 бита от 2.225 x 10^–308 до 1.797 x 10^308IEEE двойной точности. 15 цифр.
FLOAT 32 бита от 1.175 x 10^–38 до 3.402 x 10^38 IEEE одинарной точности. 7 цифр.
INT64 64 бита от –2^63 до (2^63)-1 аналогично NUMERIC(18,0)
:!: доступно только в 3-м диалекте
INTEGER 32 бита от –2,147,483,648 до 2,147,483,647 Знаковое длинное (двойное слово).
NCHAR(n)n символовот 1 до 32 767 байтов. Тоже самое что CHAR(n), за исключением того что NCHAR использует кодировку ISO8859_1 по умолчанию.
NATIONAL CHAR(n) –\\– –\\– –\\–
NATIONAL CHARACTER(n) –\\– –\\– –\\–
NUMERIC (precision, scale) Переменный (16, 32 или 64 бита) precision = от 1 до 18; точное количество цифр для хранения. scale = от 0 до 18; задает количество знаков после точки. Должно быть меньше или равно precision. Число с десятичной точкой, имеющей после точки scale разрядов. Пример: NUMERIC(10,3) содержит число точно в следующем формате: ppppppp.sss
SMALLINT 16 бит от –32768 до 32767 Знаковое короткое (слово).
TIME 32 бита от 0:00:00.000 до 23:59:59.9999 Беззнаковое целое типа InterBase ISC_TIME. Время дня в единицах 0.0001 секунды после полуночи.
:!: доступно только в 3-м диалекте
TIMESTAMP 64 бита 1 января 0001 г. 0:00:00.0000 – 31 декабря 9999 г. 23:59:59.9999 Тип InterBase ISC_TIMESTAMP. Комбинация информации DATE и TIME.

примеры по char и varchar

CREATE TABLE NEW_TABLE (
    VCH  VARCHAR(10),
    CH   CHAR(10)
);
INSERT INTO NEW_TABLE (VCH, CH) VALUES ('   000   ', '   000   ');
INSERT INTO NEW_TABLE (VCH, CH) VALUES ('111   ', '111   ');
INSERT INTO NEW_TABLE (VCH, CH) VALUES ('222', '222');
INSERT INTO NEW_TABLE (VCH, CH) VALUES ('   333', '   333');
INSERT INTO NEW_TABLE (VCH, CH) VALUES ('444          ', '444          ');/*10 пробелов*/
SELECT '*'||ch||'*' ch, '*'||vch||'*' vch  FROM new_table

результат

CH VCH
*   000    *
*   000   *
*111       *
*111   *
*222       *
*222*
*   333    *
*   333*
*444       *
*444       *
1) , 2)
пример ниже
tipy_dannyx.txt · Последнее изменение: 2018/02/16 10:01 — german