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-битовом длинном слове |
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^308 | IEEE двойной точности. 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) |
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 секунды после полуночи. |
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 * |
tipy_dannyx.txt · Последнее изменение: 2018/02/16 10:01 — german