Типы колонок — различия между версиями
Материал из DevelopmenOnTheEdge
Lan (обсуждение | вклад) м |
Fedor (обсуждение | вклад) |
||
(не показаны 2 промежуточные версии ещё одного участника) | |||
Строка 1: | Строка 1: | ||
+ | => github/be5 + | ||
+ | |||
В BeanExplorer4 определены типы [[ColumnDef|колонок]] таблиц, независимые от движка СУБД. В коде тип колонок хранится в классе {{Class|com.beanexplorer.enterprise.metadata.model.SqlColumnType}}. У типа всегда есть строковое представление. Имеются следующие типы: | В BeanExplorer4 определены типы [[ColumnDef|колонок]] таблиц, независимые от движка СУБД. В коде тип колонок хранится в классе {{Class|com.beanexplorer.enterprise.metadata.model.SqlColumnType}}. У типа всегда есть строковое представление. Имеются следующие типы: | ||
* KEYTYPE — тип, который используется по умолчанию для первичного ключа таблицы (обычно совпадает с BIGINT). | * KEYTYPE — тип, который используется по умолчанию для первичного ключа таблицы (обычно совпадает с BIGINT). | ||
Строка 4: | Строка 6: | ||
:* CHAR — строка фиксированной длины. Длина задаётся в скобках. Например: CHAR(10). | :* CHAR — строка фиксированной длины. Длина задаётся в скобках. Например: CHAR(10). | ||
:* VARCHAR — строка произвольной длины вплоть до заданной. Длина задаётся в скобках. Например: VARCHAR(15). | :* VARCHAR — строка произвольной длины вплоть до заданной. Длина задаётся в скобках. Например: VARCHAR(15). | ||
− | :* TEXT — большое текстовое поле | + | :* TEXT — большое текстовое поле (не меньше 4000 символов). |
:* BIGTEXT — очень большое текстовое поле {{TODO|уточнить минимальную длину}}. | :* BIGTEXT — очень большое текстовое поле {{TODO|уточнить минимальную длину}}. | ||
* Двоичные: | * Двоичные: | ||
Строка 24: | Строка 26: | ||
:* ENUM — перечисление допустимых значений. Например ENUM(on,off,pending) | :* ENUM — перечисление допустимых значений. Например ENUM(on,off,pending) | ||
:* BOOL — допустимо два значения — 'no' и 'yes' (совпадает с ENUM(no,yes)) | :* BOOL — допустимо два значения — 'no' и 'yes' (совпадает с ENUM(no,yes)) | ||
+ | |||
+ | === Сопоставление типов колонок === | ||
+ | |||
+ | {| border="1" style="border-collapse: collapse; text-align: center;" | ||
+ | ||'''Тип BE4''' | ||
+ | ||'''MySQL''' | ||
+ | ||'''PostGres''' | ||
+ | ||'''DB2''' | ||
+ | ||'''MS SQL 2008''' | ||
+ | ||'''Oracle''' | ||
+ | |- | ||
+ | |'''BLOB''' | ||
+ | |rowspan="2"|MEDIUMBLOB | ||
+ | |rowspan="2"|BYTEA | ||
+ | |BLOB(4M) | ||
+ | |rowspan="2"|IMAGE | ||
+ | |BLOB | ||
+ | |- | ||
+ | |'''MEDIUMBLOB''' | ||
+ | |BLOB(16M) | ||
+ | |MEDIUMBLOB | ||
+ | |- | ||
+ | |'''TEXT''' | ||
+ | |colspan="2" rowspan="2"|TEXT | ||
+ | |CLOB(64K) | ||
+ | |rowspan="2"|VARCHAR(MAX) | ||
+ | |VARCHAR2(4000 CHAR) | ||
+ | |- | ||
+ | |'''BIGTEXT''' | ||
+ | |CLOB(128K) | ||
+ | |CLOB | ||
+ | |- | ||
+ | |'''VARCHAR''' | ||
+ | |VARCHAR | ||
+ | (если размер >255, то TEXT) | ||
+ | |colspan="3"|VARCHAR | ||
+ | |VARCHAR2 | ||
+ | |- | ||
+ | |'''CHAR''' | ||
+ | |colspan="5"|CHAR | ||
+ | |- | ||
+ | |'''KEYTYPE''' | ||
+ | |BIGINT UNSIGNED | ||
+ | |colspan="3"|BIGINT | ||
+ | |VARCHAR2(15 CHAR) | ||
+ | |- | ||
+ | |'''INT''' | ||
+ | |INT | ||
+ | |rowspan="2" colspan="3"|INT | ||
+ | |rowspan="2"|NUMBER(10) | ||
+ | |- | ||
+ | |'''INT UNSIGNED''' | ||
+ | |INT UNSIGNED | ||
+ | |- | ||
+ | |'''BIGINT''' | ||
+ | |BIGINT | ||
+ | |rowspan="2" colspan="3"|BIGINT | ||
+ | |rowspan="2"|NUMBER(20) | ||
+ | |- | ||
+ | |'''BIGINT UNSIGNED''' | ||
+ | |BIGINT UNSIGNED | ||
+ | |- | ||
+ | |'''SMALLINT''' | ||
+ | |colspan="4"|SMALLINT | ||
+ | |NUMBER(5) | ||
+ | |- | ||
+ | |'''DECIMAL''' | ||
+ | |colspan="4"|DECIMAL | ||
+ | |NUMBER | ||
+ | |- | ||
+ | |'''CURRENCY''' | ||
+ | |colspan="4"|DECIMAL(18,2) | ||
+ | |NUMBER(18,2) | ||
+ | |- | ||
+ | |'''DATE''' | ||
+ | |colspan="5"|DATE | ||
+ | |- | ||
+ | |'''DATETIME''' | ||
+ | |DATETIME | ||
+ | |rowspan="2" colspan="2"|TIMESTAMP | ||
+ | |rowspan="2"|DATETIME | ||
+ | |rowspan="2"|TIMESTAMP | ||
+ | |- | ||
+ | |'''TIMESTAMP''' | ||
+ | |TIMESTAMP | ||
+ | |- | ||
+ | |'''ENUM''' | ||
+ | |ENUM | ||
+ | |rowspan="2" colspan="3"|VARCHAR + CONSTRAINT | ||
+ | |rowspan="2"|VARCHAR2 + CONSTRAINT | ||
+ | |- | ||
+ | |'''BOOL''' | ||
+ | |ENUM('no','yes') | ||
+ | |} |
Текущая версия на 22:45, 6 марта 2020
=> 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') |