SQL 2章 SQL
2.5. SQL によるデータベース操作
2.5.1. 基本的なデータ型
リレーショナル型データベースの場合、複数の列によって表が構成されます。列という単位には同様の形式の情報が入ることになります。これはたとえば氏名や住所などの文字情報の場合もありますし、金額などの整数の場合もあります。また確率のように小数点付きの情報、日付情報などなど、それぞれは列という概念において同一の形式の情報が集合化されているわけです。
このような、それ以上は論理的に分割されることはない情報の値の集合が列であり、この値の入るべき情報の形式をデータ型というわけです。
データ型は各製品に実装される SQL によって若干の差はあるので注意が必要です。公式には基本的なデータ型として次の 7つが定義されています。
- CHARACTER STRING
- 使用される文字セットにかかわりなく、テキストを表す全てのデータ型である。固定長と可変長があり、可変長の場合は CHARACTER VARYING と定義される。引数として固定長の場合は、その文字数をとり、可変長の場合は文字数の最大値をとる。CHARACTER は CHAR、CHARACTER VARYING は CHAR VARYING や VARCHAR と省略することも可能である。
- NATIONAL CHARACTER
- 文字セットが実装時に定義され、もっとも一般的に使用される言語に対応することを除けば、実質的には CHARACTER STRING 型と同じである。NATIONAL CHAR または NCHAR と省略することが可能である。
- BIT STRING
- BIT 文字列はバイナリ数で、0 と 1 のシーケンスで構成される。固定長と可変長があり、可変長の場合は BIT VARYING と定義される。引数として、固定長の場合はその文字列を、可変長の場合は文字数の最大値をとる。
- EXACT NUMERIC
- 精度とスケールを指定または暗示する。厳密な数を表す数字で次の 4つがある。
- NUMERIC
- 指定された桁数と小数点位置をもつ数値を定義する。
- DECIMAL
- NUMERIC と非常に似ているが、実装によっては定義されているものより大きな精度が選択されるという、わずかな違いがある。NUMERIC が実際の精度を指定するのに対し、DECIMAL は最小の精度を指定する。
- INTEGER
- 小数点を持たない精度の整数値を定義する。
- SMALLINT
- 精度が INTGER よりも低いことを除けば、INTEGER と同じ。
- APPROXIMATE NUMERIC
- 精度を持つがスケールといったものはない。APPROXIMATE NUMERIC は次のとおりである。
- FLOAT
- 指定される精度の値以上の 2 進数精度を持つ。
- REAL
- この型の精度は 10 進数で、実装時に定義される。
- DOUBLE PRECISION
- この型の精度も 10 進数で実装時に定義されるが REAL の精度よりも高い。
- DATETIME
- 日付または時刻を示す表現の様々な部分を表す。次の3つのデータ型がある。
- DATE
- YEAR、MONTH、DAY という 3つの整数フィールドの集合の型である。
- TIME
- これも HOUR、MINUTE、SECOND という 3つの数値フィールドの集合の型である。
- TIMESTAMP
- DATE と TIME の組合せの型である。
- INTERVAL
- 様々な日付や時刻間の間隔で、時間の量を示すデータ型である。
(実習課題2)
SQL の基本的なデータ型にはどのようなものがあるか? それぞれについて説明せよ。
関連記事
- [SQL] 2. SQL 1 : データベースを操作するSQLの歴史について説明します
- [SQL] 2. SQL 2 : SQLの種類について説明します
- [SQL] 2. SQL 3 : SQLの利用方法について説明します