Типы колонок

Материал из DevelopmenOnTheEdge
Версия от 22:45, 6 марта 2020; Fedor (обсуждение | вклад)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

=> github/be5 +

В BeanExplorer4 определены типы колонок таблиц, независимые от движка СУБД. В коде тип колонок хранится в классе SqlColumnType. У типа всегда есть строковое представление. Имеются следующие типы:

  • KEYTYPE — тип, который используется по умолчанию для первичного ключа таблицы (обычно совпадает с BIGINT).
  • Текстовые:
  • CHAR — строка фиксированной длины. Длина задаётся в скобках. Например: CHAR(10).
  • VARCHAR — строка произвольной длины вплоть до заданной. Длина задаётся в скобках. Например: VARCHAR(15).
  • TEXT — большое текстовое поле (не меньше 4000 символов).
  • BIGTEXT — очень большое текстовое поле (TODO:уточнить минимальную длину).
  • Двоичные:
  • BLOB — бинарные данные (TODO:уточнить минимальную длину).
  • MEDIUMBLOB — бинарные данные (TODO:уточнить минимальную длину).
  • Численные:
  • INT — целое знаковое число (минимум 32-битное).
  • INT UNSIGNED — целое беззнаковое число (минимум 32-битное). Поддерживается не всеми движками.
  • BIGINT — целое знаковое число (минимум 64-битное).
  • BIGINT UNSIGNED — целое беззнаковое число (минимум 64-битное). Поддерживается не всеми движками.
  • SMALLINT — целое знаковое число (минимум 16-битное).
  • DECIMAL — дробное число указанной длины с указанной точностью (количество десятичных знаков). Например DECIMAL(10,2).
  • CURRENCY — валюта. Сейчас совпадает с DECIMAL(18,2).
  • Дата и время:
  • DATE — дата.
  • DATETIME — дата и время.
  • TIMESTAMP — дата и время. Совпадает с DATETIME во всех движках кроме MySQL. Подробнее тут: Datetime или timestamp.
  • Перечислимые:
  • ENUM — перечисление допустимых значений. Например ENUM(on,off,pending)
  • BOOL — допустимо два значения — 'no' и 'yes' (совпадает с ENUM(no,yes))

Сопоставление типов колонок

Тип BE4 MySQL PostGres DB2 MS SQL 2008 Oracle
BLOB MEDIUMBLOB BYTEA BLOB(4M) IMAGE BLOB
MEDIUMBLOB BLOB(16M) MEDIUMBLOB
TEXT TEXT CLOB(64K) VARCHAR(MAX) VARCHAR2(4000 CHAR)
BIGTEXT CLOB(128K) CLOB
VARCHAR VARCHAR

(если размер >255, то TEXT)

VARCHAR VARCHAR2
CHAR CHAR
KEYTYPE BIGINT UNSIGNED BIGINT VARCHAR2(15 CHAR)
INT INT INT NUMBER(10)
INT UNSIGNED INT UNSIGNED
BIGINT BIGINT BIGINT NUMBER(20)
BIGINT UNSIGNED BIGINT UNSIGNED
SMALLINT SMALLINT NUMBER(5)
DECIMAL DECIMAL NUMBER
CURRENCY DECIMAL(18,2) NUMBER(18,2)
DATE DATE
DATETIME DATETIME TIMESTAMP DATETIME TIMESTAMP
TIMESTAMP TIMESTAMP
ENUM ENUM VARCHAR + CONSTRAINT VARCHAR2 + CONSTRAINT
BOOL ENUM('no','yes')