1. 数値型
型 | 最小値 | 最大値 | サイズ |
---|---|---|---|
SMALLINT | -32768 | 32767 | 2Byte |
INTEGER | -2147483648 | 2147483647 | 4Byte |
BIGINT | -9223372036854775808 | 9223372036854775807 | 8Byte |
NUMERIC(精度[,位取り]) DECIMAL(精度[,位取り]) 例)「1234.56」→「精度6、位取り2」 位取り省略時は0 |
– | – | – |
REAL | -1E+37 | 1E+37 | 4Byte |
DOUBLE 精度 | -1E+308 | 1E+308 | 8Byte |
SMALLSERIAL *1 | 1 | 32767 | 2Byte |
SERIAL *1 | 1 | 2147483647 | 4Byte |
BIGSERIAL *1 | 1 | 9223372036854775807 | 8Byte |
*1 自動的に増分値を設定する。(正確にはデータ型ではなく列に一意値を設定する簡便な表記法)
/*
* SERIALは内部的に下記の様なテーブル定義になっている。
*/
-- これが
CREATE TABLE hoge_tbl (
fuga_col SERIAL
);
-- こうなる
CREATE SEQUENCE hoge_tbl_fuga_col_seq;
CREATE TABLE hoge_tbl (
fuga_col integer NOT NULL DEFAULT nextval('hoge_tbl_fuga_col_seq')
);
ALTER SEQUENCE hoge_tbl_fuga_col_seq OWNED BY hoge_tbl.fuga_col;
/* UNIQUE/PRIMARY KEY制約は設定されていないので重複値が登録される可能性がある!!
(Ver7.3以前ではUNIQUEだったのでVerUp時は注意する事) */
2. 文字列型
型 | 説明 |
---|---|
CHAR(n) CHARACTER(n) |
固定長文字列。 格納文字列が指定サイズより小さい場合は右スペース埋めされる。 |
CHAR | CHAR(1)と等価 |
TEXT | 可変長文字列。 ほぼ制限無く文字列を格納できる。(最大1GB) |
VARCHAR(n) | 可変長文字列。 TEXT型 + 文字列長チェックと同じ。 |
3. 日付/時刻型
型 | 属性 | 説明 | サイズ |
---|---|---|---|
DATE | 日付 | 範囲: BC4713 ~ AD32767 入力形式: ‘YYYY-MM-DD’, ‘YYYY/MM/DD’, ‘YYYYMMDD’ |
4Byte |
TIMESTAMP[(p)] *1 [without time zone] |
日時 | 範囲: BC4713 ~ AD294276 入力形式: ‘YYYY-MM-DD HH:MM:SS’, ‘YYYY/MM/DD HH:MM:SS’, ‘YYYYMMDD HH:MM:SS’ |
8Byte |
TIMESTAMP[(p)] *1 with time zone |
日時 | タイムゾーン付き日時 | 8Byte |
TIME[(p)] *1 [without time zone] |
時刻 | 範囲: ‘00:00:00.00’ ~ ‘23:59:59.99’ 入力形式: ‘HH:MM:SS’, ‘HHMMSS’, ‘HH:MM’ |
8Byte |
TIME[(p)] *1 with time zone |
時刻 | タイムゾーン付き時刻 | 12Byte |
interval[(p)] *1 with time zone |
日時の差 | 範囲: -178000000年 ~ 178000000 入力形式: - マニュアル参照 - |
16Byte |
*1 (p)は秒の小数点以下の桁数
4. ブーリアン型
型 | 説明 |
---|---|
BOOLEAN | 真理値 TRUE / FALSE / NULL ’t’ / ‘f’, ’true’ / ‘false’ ‘y’ / ’n’, ‘yes’ / ’no’ ‘1’ / ‘0’, 1 / 0 |
5. ビット型
型 | 説明 |
---|---|
BIT(n) | n bitの固定長bit列 |
BIT | BIT(1)と等価 |
VAR BIT(n) | 最大n bitの可変長bit列 |