Типы колонок — различия между версиями
Материал из DevelopmenOnTheEdge
								
												
				Lan  (обсуждение | вклад) м  | 
				Lan  (обсуждение | вклад)   | 
				||
| Строка 24: | Строка 24: | ||
:* 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')  | ||
| + | |}  | ||
Версия 10:17, 7 октября 2014
В BeanExplorer4 определены типы колонок таблиц, независимые от движка СУБД. В коде тип колонок хранится в классе SqlColumnType. У типа всегда есть строковое представление. Имеются следующие типы:
- KEYTYPE — тип, который используется по умолчанию для первичного ключа таблицы (обычно совпадает с BIGINT).
 - Текстовые:
 
- CHAR — строка фиксированной длины. Длина задаётся в скобках. Например: CHAR(10).
 - VARCHAR — строка произвольной длины вплоть до заданной. Длина задаётся в скобках. Например: VARCHAR(15).
 - TEXT — большое текстовое поле (TODO:уточнить минимальную длину).
 - 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') | ||||