Oracleで使われるデータ型の一覧
データベースにデータを格納する際は、データの型を意識する必要があります。
型は表の列ごとに指定されており、その型に合ったデータのみを
格納することができます。
※表の列に対する型の指定方法は、別途記事にする予定です。
データの種類としては以下の4種類に分類することができます。
- 文字列データ
- 数値データ
- 日時データ
- バイナリデータ
データの種類としては4種類ですが、そのデータを表す型としてはいくつか存在します。
ここでは代表的な物しか紹介しませんが、1つ1つ見ていきましょう。
1.文字列を表すデータ型
型名 | 備考 |
VARCHAR2 | 4000バイトまでの文字列を格納することができる(可変長) |
CHAR | 2000バイトまでの文字列を格納することができる(固定長) |
LONG | 2000GBまでの文字列を格納することができる(可変長) |
CLOB | 4000GBまでの文字列を格納することができる(可変長) |
ここで「可変長」という言葉と「固定長」という言葉が出てきました。
可変長とは「長さが変わる」と言う意味で、文字列を格納した際にその文字列の
サイズに応じて型のサイズが自動で変更されることを表します。
逆に固定長とは「長さが決まっていて、変わらない」ということを表します。
例えば、表の氏名列にVARCHAR2型で最大サイズが10バイト(※1)と定義したとしましょう。
その列に「ああああ」と言う文字列を格納した場合、データとしては8バイト(※2)格納
したことになります。
※1.最大サイズとは格納できるデータサイズの上限です。VARCHAR2型を指定する際はこの最大サイズの指定を行わなければなりません(CHAR型は省略可能。省略すると1が最大サイズとなる。)
※2.全角文字は1文字2バイトです。
この時、可変長のVARCHAR2では最大サイズ10バイトで定義されていても、
格納したデータ8バイトでデータが保持されます。
しかし、氏名列が固定長のCHAR型で最大サイズが10バイトで定義されていた場合
「ああああ」と言う文字列を格納すると、格納したデータ8バイトのデータが
格納される共に残りの2バイト分は半角スペースで詰められ10バイトとして保持されます。
そのため、使い分けとしては「格納するデータの長さが不均一」の場合は可変長を
「格納するデータの長さが均一」の場合は固定長の型を使うといいでしょう。
2.数値を表すデータ型
型名 | 備考 |
NUMBER | 数値を格納することができる |
NUMBER型には「精度」と「スケール」を指定することができます。
精度とスケールについては数学的な話になるので、ここでは省略します。
他にも数値を扱うデータ型はありますが、基本的にNUMBER型を覚えておけば
問題ないでしょう。
3.日時を表すデータ型
型名 | 備考 |
DATE | 日付と時刻を格納することができる |
TIMESTAMP | 日付と時刻をミリ秒単位まで格納することができる |
DATE型が格納する日時データの書式としては「YYYY-MM-DD HH:MM:SS」で
格納されます。分かりやすく表すと「年-月-日 時:分:秒」と言う書式です。
TIMESTAMP型はミリ単位まで時刻を格納することができます。
ミリ単位とは、0.1秒など1秒以下の時間ですね。
最小0.000000001秒(小数点第9位)まで格納できます。
4.バイナリデータを表すデータ型
型名 | 備考 |
RAW | 2000バイトまでのバイナリデータを格納することができる |
LONG RAW | 2GBまでのバイナリデータを格納することができる |
BLOB | 4GBまでのバイナリデータを格納することができる |
そもそもバイナリデータとは何かといいますと、「コンピュータが扱えるデータ」
のことです。
つまりすべてのデータと言うことになってしまいますが、画像データや音楽データ
動画データなどをイメージしてもらえれば分かりやすいと思います。
これらのデータをデータベース上に格納したい場合に、上記の型を使用します。