基本的なデータ型とその使い方については、p.45からp.48をご覧ください。
*1 はSQL99で標準化されたものです。[ ] は省略可能です。
数値
MySQLでは符号なし整数 int unsigned をよく使うが、PostgreSQLにはない。
MySQLでは主キーの値を自動生成するためにauto_incrementを付加するが、PostgreSQLではserial型を使う。RDBMSごとのSQLの差異については、Comparison of different SQL implementations が詳しい。(2006.7.24追加。)
| 標準SQL
| MySQL
| PostgreSQL
|
| 正式名
| 別名
| 正式名
| 別名
| 正式名
| 別名
|
| SMALLINT |
|
SMALLINT [(精度)] [UNSIGNED] [ZEROFILL] |
|
SMALLINT |
INT2 |
| INTEGER |
INT |
INTEGER [(精度)] [UNSIGNED] [ZEROFILL] |
INT [(精度)] [UNSIGNED] [ZEROFILL] |
INTEGER |
INT, INT4 |
| FLOAT [(精度)] |
|
FLOAT (精度) [UNSIGNED] [ZEROFILL] |
FLOAT [(精度, 位取り)] [UNSIGNED] [ZEROFILL] |
|
|
| DOUBLE PRECISION |
|
DOUBLE PRECISION [(精度, 位取り)] [UNSIGNED] [ZEROFILL] |
|
DOUBLE PRECISION |
FLOAT8 |
| REAL |
|
REAL [(精度, 位取り)] [UNSIGNED] [ZEROFILL] |
DOUBLE [(精度, 位取り)] [UNSIGNED] [ZEROFILL] |
REAL |
FLOAT4 |
| DECIMAL [(精度 [, 位取り])] |
DEC [(精度 [, 位取り])] |
DECIMAL [(精度 [, 位取り])] [UNSIGNED] [ZEROFILL] |
DEC [(精度 [, 位取り])] [UNSIGNED] [ZEROFILL] |
DECIMAL [(精度, 位取り)] |
|
| NUMERIC [(精度 [, 位取り])] |
|
NUMERIC [(精度 [, 位取り])] [UNSIGNED] [ZEROFILL] |
|
NUMERIC [(精度, 位取り)] |
|
|
|
TINYINT [(長さ)] [UNSIGNED] [ZEROFILL] |
|
|
|
|
|
MEDIUMINT [(長さ)] [UNSIGNED] [ZEROFILL] |
|
|
|
|
|
BIGINT [(長さ)] [UNSIGNED] [ZEROFILL] |
|
BIGINT |
INT8 |
文字列
| 標準SQL
| MySQL
| PostgreSQL
|
| 正式名
| 別名
| 正式名
| 別名
| 正式名
| 別名
|
| CHARACTER [(長さ)] |
CHAR [(長さ)] |
CHAR [(長さ)] [BINARY] |
|
CHARACTER (長さ) |
CHAR (長さ) |
| NATIONAL CHARACTER [(長さ)] |
NATIONAL CHAR [(長さ)], NCHAR [(長さ)] |
NATIONAL CHAR (長さ) [BINARY] |
|
|
|
| CHARACTER VARYING (長さ) |
CHAR VARYING (長さ),VARCHAR (長さ) |
VARCHAR (長さ) [BINARY] |
|
CHARACTER VARYING (長さ) |
VARCHAR (長さ) |
| NATIONAL CHARACTER VARYING (長さ) |
NATIONAL CHAR VARYING (長さ), NCHAR VARYING (長さ) |
NATIONAL VARCHAR (長さ) [BINARY] |
|
|
|
| CHARACTER LARGE OBJECT *1 |
CLOB *1 |
TEXT |
|
TEXT |
|
|
|
TINYTEXT |
|
|
|
|
|
MEDIUMTEXT |
|
|
|
|
|
LONGTEXT |
|
|
|
日時データ型
| 標準SQL
| MySQL
| PostgreSQL
|
| 正式名
| 別名
| 正式名
| 別名
| 正式名
| 別名
|
| DATE |
|
DATE |
|
DATE |
|
| TIMESTAMP [(精度)] [WITH TIME ZONE] |
|
TIMESTAMP [(精度)] |
|
TIMESTAMP [(精度)] [WITH TIME ZONE] |
TIMESTAMPTZ |
| TIME [(精度)] [WITH TIME ZONE] |
|
TIME |
|
TIME [(精度)] WITH TIME ZONE |
TIMETZ |
|
|
DATETIME |
|
|
|
|
|
YEAR [(2 | 4)] |
|
|
|
|
|
|
|
TIMESTAMP [(精度)] WITHOUT TIME ZONE |
TIMESTAMP |
|
|
|
|
TIME [(精度)] [WITHOUT TIME ZONE] |
|
時間隔データ型
| 標準SQL
| MySQL
| PostgreSQL
|
| 正式名
| 別名
| 正式名
| 別名
| 正式名
| 別名
|
| INTERVAL 時間隔修飾子 |
|
|
|
INTERVAL (精度) |
|
バイナリ型
| 標準SQL
| MySQL
| PostgreSQL
|
| 正式名
| 別名
| 正式名
| 別名
| 正式名
| 別名
|
| BINARY LARGE OBJECT *1 |
BLOB *1 |
BLOB |
|
|
|
|
|
TINYLOB |
|
|
|
|
|
MEDIUMBLOB |
|
|
|
|
|
LONGBLOB |
|
|
|
|
|
|
|
BYTEA |
|
ビット列
| 標準SQL
| MySQL
| PostgreSQL
|
| 正式名
| 別名
| 正式名
| 別名
| 正式名
| 別名
|
| BIT [(長さ)] |
|
BIT |
|
BIT |
|
| BIT VARYING (長さ) |
|
|
|
BIT VARYING (長さ) |
VARBIT (長さ) |
ブール型
| 標準SQL
| MySQL
| PostgreSQL
|
| 正式名
| 別名
| 正式名
| 別名
| 正式名
| 別名
|
| BOOLEAN *1 |
|
BOOL |
|
BOOLEAN |
BOOL |
その他
| 標準SQL
| MySQL
| PostgreSQL
|
| 正式名
| 別名
| 正式名
| 別名
| 正式名
| 別名
|
|
|
ENUM ('値1', '値2', ...) |
|
|
|
|
|
SET ('値1', '値2', ...) |
|
|
|
|
|
|
|
BOX |
|
|
|
|
|
CIDR |
|
|
|
|
|
CIRCLE |
|
|
|
|
|
INET |
|
|
|
|
|
LINE |
|
|
|
|
|
LSEG |
|
|
|
|
|
MACADDR |
|
|
|
|
|
MONEY |
|
|
|
|
|
PATH |
|
|
|
|
|
POINT |
|
|
|
|
|
POLYGON |
|
|
|
|
|
SERIAL |
SERIAL4 |
|
|
|
|
BIGSERIAL |
SERIAL8 |