データ型は次の二つに分けられます。
データ型::={既定義型|ユーザ定義型}
既定義型を次の表に示します。
表1-3 既定義型
分 類 | データ型※1 | データ形式 | 説 明 |
---|---|---|---|
数データ | INT〔EGER〕 | 整数 (4バイトの2進形式) | 値の範囲が-2147483648~2147483647の整数です。 |
SMALLINT | 整数 (2バイトの2進形式) | 値の範囲が-32768~32767の整数です。 | |
〔LARGE〕 DEC〔IMAL〕 〔(m〔,n〕)〕 又は NUMERIC 〔(m〔,n〕)〕 | 固定小数点数 (↑(m+1)/2↑バイトのパック10進形式)※8 | 精度(全体のけた数)がmけたで,位取り(小数点以下のけた数)がnけたの固定小数点数です。 m,nは正整数で,1≦m≦38,0≦n≦38,n≦mです。 mを省略すると,15が仮定されます。 nを省略すると,0が仮定されます。 | |
FLOAT又は DOUBLE PRECISION | 倍精度浮動小数点数 (8バイト) | 値の範囲が約±4.9×10-324~±1.7×10308の倍精度浮動小数点数です。※4 | |
SMALLFLT又は REAL | 単精度浮動小数点数 (4バイト) | 値の範囲が約±1.4×10-45~±3.4×1038の単精度浮動小数点数です。※4 | |
文字データ※10 | CHAR〔ACTER〕 〔(n)〕〔CHARACTER SET 文字集合指定〕 | 固定長文字列 (長さnバイト) |
文字集合指定は文字データに対する属性を指定します。詳細は「1.3 文字集合」を参照してください。 |
VARCHAR(n) 〔CHARACTER SET 文字集合指定〕又は CHAR〔ACTER〕VARYING(n) 〔CHARACTER SET 文字集合指定〕 | 可変長文字列 (最大長nバイト) |
文字集合指定は文字データに対する属性を指定します。詳細は「1.3 文字集合」を参照してください。 | |
各国文字データ※6※9 | NCHAR〔(n)〕又は NATIONAL CHAR〔ACTER〕〔(n)〕 | 固定長各国文字列 (長さn文字) | 長さn文字(2nバイト)の全角文字から成る固定長各国文字列です。 nは正整数で1≦n≦15,000です。nを省略すると,1が仮定されます。 |
NVARCHAR(n)又は NATIONAL CHAR〔ACTER〕VARYING(n)又は NCHAR VARYING(n) | 可変長各国文字列 (最大長n文字) | 最大長がn文字(2nバイト)の全角文字から成る可変長各国文字列です。 nは正整数で1≦n≦16,000です。実長は0以上です。 | |
混在文字データ※6 | MCHAR〔(n)〕 | 固定長混在文字列 (長さnバイト) | 長さnバイトの半角文字と全角文字の混在する固定長混在文字列です。 nは正整数で1≦n≦30,000です。nを省略すると,1が仮定されます。 |
MVARCHAR(n) | 可変長混在文字列 (最大長nバイト) | 最大長nバイトの半角文字と全角文字の混在する可変長混在文字列です。 nは正整数で1≦n≦32,000です。実長は0以上です。 | |
日付データ | DATE | 日付 (4バイト符号なしパック形式YYYYMMDD) YYYY:0001~9999(年) MM:01~12(月) DD:01~該当年月の最終日(日) | 年,月,日の三つの領域を持つ日付のデータ型です。 |
時刻データ | TIME | 時刻 (3バイト符号なしパック形式hhmmss) hh:00~23(時) mm:00~59(分) ss:00~59(秒)※11 | 時,分,秒の三つの領域を持つ時刻のデータ型です。 |
時刻印データ | TIMESTAMP〔(p)〕 | 時刻印 (7~10バイトの符号なしパック形式YYYYMMDDhhmmss〔nn…n〕) YYYY:0001~9999(年) MM:01~12(月) DD:01~該当年月の最終日(日) hh:00~23(時) mm:00~59(分) ss:00~59(秒)※11 nn…n:pけたの小数秒(n:0~9) | 年,月,日,時,分,秒の六つの領域を持つ時刻印のデータ型です。 pは整数で,p=0,2,4,又は6です。省略した場合は,p=0が仮定されます。 |
日間隔データ | INTERVAL YEAR TO DAY | 日間隔 (5バイトパック形式 0YYYYMMDDs) YYYY:0000~9999(か年) MM:00~99※2(か月) DD:00~99(か日) s:符号(正:C,F 負:D)※8 | 日付データ型が,ある一時点を表すのに対して,日間隔データ型は,日付と日付の間隔を表すデータ型です。 日間隔の範囲は,-9999か年11か月99か日間~9999か年11か月99か日間です。 |
時間隔データ | INTERVAL HOUR TO SECOND | 時間隔 (4バイトパック形式 0hhmmsst) hh:00~99(時間) mm:00~99※3(分) ss:00~99※3(秒) t:符号(正:C,F 負:D)※8 | 時刻データ型が,ある一時点を表すのに対して,時間隔データ型は,時刻と時刻の間隔を表すデータ型です。 時間隔の範囲は-99時間59分59秒~99時間59分59秒です。 |
長大データ | BLOB〔(n〔{K|M|G}〕)〕 又は BINARY LARGE OBJECT〔(n〔{K|M|G}〕)〕 | バイナリデータ列 (最大長nバイト) K:キロバイト単位 M:メガバイト単位 G:ギガバイト単位 | 最大長nバイトのバイナリデータ列です。 nを省略すると,2,147,483,647バイトが仮定されます。実長は0以上です。単位としてK,M,及びGが指定できます。※5 単位(K,M,又はG)を省略すると,バイト単位となります。 |
バイナリデータ | BINARY(n) | バイナリデータ列 (最大長nバイト) | 最大長nバイトのバイナリデータ列です。 nは省略できません。実長は0以上です。nは正整数で,1≦n≦2,147,483,647バイトです。 |
論理データ | BOOLEAN※7 | 論理値(4バイト) | 論理値として真(TRUE),偽(FALSE),否定(UNKNOWN)をとります。 |
データ型 | 文字集合指定 | 空白文字コード |
---|---|---|
文字データ | 省略 | X'20' |
EBCDIK | X'40' | |
UTF16 | X'0020'※ | |
混在文字データ | X'20' | |
各国文字データ | 使用している文字コードに依存 |
単 位 | nの指定範囲 | 実際の最大長(バイト) |
---|---|---|
K | 1≦n≦2097152 | n×1024 |
M | 1≦n≦2048 | n×1048576 |
G | 1≦n≦2 | n×1073741824 |
ユーザ定義型を次の表に示します。
表1-4 ユーザ定義型
データ型 | データ形式 | 説明 |
---|---|---|
抽象データ型 | - | CREATE TYPEで定義するデータ型を示します。データ型中に属性定義,ルーチンなどを定義できます。 |
(凡例)-:該当しません。