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

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


tipy_dannyx

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Both sides previous revision Предыдущая версия
tipy_dannyx [2013/03/23 12:51]
arni
tipy_dannyx [2018/02/16 10:01] (текущий)
german Разница 1 и 3 диалекта
Строка 1: Строка 1:
 +====== Типы данных ======
 +
 +Типы данных SQL-сервера Firebird используются при создании доменов,​ таблиц,​ просмотров,​ хранимых процедур,​ объявления контекстных переменных и параметров в PSQL-блоках/​хранимых процедурах/​триггерах.
 +===== Таблица типов данных =====
 +
 +^Имя ^Размер ^Точность ^Описание^
 +| BLOB |Переменный |Нет. Размер сегмента BLOB ограничивается 64К. |Тип данных с динамически изменяемым размером для хранения больших данных,​ таких как графика,​ тексты,​ оцифрованные звуки. Базовая структурная единица — сегмент. Подтип Blob описывает содержимое.|
 +|CHAR(n) | n/​кол-во_байт_на_символ,​ т.е. зависит от кодировки |от 1 до 32 767 байтов.| Набор символов определяет размер символов в байтах и задает количество символов,​ которое может быть меньше 32К CHAR фиксированной длины или строка текста. В случае если строка меньше заявленой - она добивается пробелами с конца до заданной длины((пример ниже))|
 +|CHARACTER(n)| ​ --\\-- ​ |  --\\-- ​ |  --\\-- ​ |
 +|VARCHAR(n) |  --\\-- ​ |от 1 до 32 765 байтов.| Набор символов определяет размер символов в байтах и задает количество символов,​ которое может быть меньше 32К CHAR переменной длины или строка текста. Конечные пробелы сохраняются,​ но обрезаются те, что не вмещаются в обьявленую длину((пример ниже))|
 +|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%%^%%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)\\ :!: доступно только в 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)
 +  );
 +
 +<code sql>​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 пробелов*/</​code>​
 +
 +<code sql>​select '​*'​||ch||'​*'​ ch, '​*'​||vch||'​*'​ vch  from new_table</​code>​
 +результат
 +^  CH  ^  VCH  ^
 +|<​code>​* ​  ​000 ​   *</​code>​|<​code>​* ​  ​000 ​  ​*</​code>​|
 +|<​code>​*111 ​      ​*</​code>​|<​code>​*111 ​  ​*</​code>​|
 +|<​code>​*222 ​      ​*</​code>​|<​code>​*222*</​code>​|
 +|<​code>​* ​  ​333 ​   *</​code>​|<​code>​* ​  ​333*</​code>​|
 +|<​code>​*444 ​      ​*</​code>​|<​code>​*444 ​      ​*</​code>​|
 +
  
tipy_dannyx.txt · Последние изменения: 2018/02/16 10:01 — german