Типы колонок
Материал из DevelopmenOnTheEdge
=> 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') |