7.4. データ型#
7.4.1. 名前#
Groonga データ型
7.4.2. 説明#
Groonga は、格納するデータの型を区別します。
Groongaのデータベースでは、テーブルの主キーや、カラムの値はいずれも何らかの型に属します。また通常は、一つのテーブルの中の全てのレコードについて、カラムの値は共通となります。
主キーの型とカラムの型には、Groongaで予め定義済みの型か、ユーザが定義する型、またはユーザが定義したテーブルを指定することができます。
主キーの型に他のテーブルを指定する場合は、そのテーブルは、主キーの型となるテーブルのサブセットとなります。
カラムの型に他のテーブルを指定する場合は、そのカラムは、カラムの型となるテーブルの参照キーとなります。
7.4.3. 組込型#
以下の型が組込型としてあらかじめ定義されています。
7.4.3.1. Bool
#
ブーリアン型やブール型などと呼ばれる型であり、真偽値を表します。取り得る値はtrueとfalseです。(デフォルト値: false)
load コマンドで値を格納するときは、false、0、空文字列のいずれかを指定するとfalseになり、それ以外を指定するとtrueになります。
7.4.3.2. Int8
#
8bit符号付き整数であり、-128以上127以下の整数を表します。(デフォルト値: 0)
7.4.3.3. UInt8
#
8bit符号なし整数であり、0以上255以下の整数を表します。(デフォルト値: 0)
7.4.3.4. Int16
#
16bit符号付き整数であり、-32,768以上32,767以下の整数を表します。(デフォルト値: 0)
7.4.3.5. UInt16
#
16bit符号なし整数であり、0以上65,535以下の整数を表します。(デフォルト値: 0)
7.4.3.6. Int32
#
32bit符号付き整数であり、-2,147,483,648以上2,147,483,647以下の整数を表します。(デフォルト値: 0)
7.4.3.7. UInt32
#
32bit符号なし整数であり、0以上4,294,967,295以下の整数を表します。(デフォルト値: 0)
7.4.3.8. Int64
#
64bit符号付き整数であり、-9,223,372,036,854,775,808以上9,223,372,036,854,775,807以下の整数を表します。(デフォルト値: 0)
7.4.3.9. UInt64
#
64bit符号なし整数であり、0以上18,446,744,073,709,551,615以下の整数を表します。(デフォルト値: 0)
7.4.3.10. Float32
#
バージョン 10.0.2 で追加.
IEEE 754形式の単精度浮動小数点数であり、実数を表します。(デフォルト値: 0.0)
IEEE 754形式の詳細については、 IEEE 754 - Wikipedia や IEEE 754: Standard for Binary Floating-Point を参照してください。
7.4.3.11. Float
#
IEEE 754形式の倍精度浮動小数点数であり、実数を表します。(デフォルト値: 0.0)
IEEE 754形式の詳細については、 IEEE 754 - Wikipedia や IEEE 754: Standard for Binary Floating-Point を参照してください。
7.4.3.12. Time
#
日時を表す型であり、1970年1月1日0時0分0秒からの経過時間を、マイクロ秒単位で64bit符号付き整数により表現します。(デフォルト値: 0)
load コマンドで値を格納するときは、1970年1月1日0時0分0秒からの経過秒数を指定します。秒単位より詳細な日時を指定するには、小数を使います。
7.4.3.13. ShortText
#
4,095バイト以下の文字列を表します。(デフォルト値: "")
7.4.3.14. Text
#
65,535バイト以下の文字列を表します。(デフォルト値: "")
7.4.3.15. LongText
#
2,147,483,647バイト以下の文字列を表します。(デフォルト値: "")
7.4.3.16. TokyoGeoPoint
#
旧日本測地系による経緯度であり、経度と緯度をミリ秒単位で表現した整数の組により表現します。(デフォルト値: 0x0)
度分秒形式でx度y分z秒となる経度・緯度は、(((x * 60) + y) * 60 + z) * 1000という計算式でミリ秒単位へと変換されます。
load コマンドで値を格納するときは、"ミリ秒単位の経度xミリ秒単位の緯度" もしくは "経度の小数表記x緯度の小数表記" という文字列表現を使って指定します。経度と緯度の区切りとしては、'x' のほかに ',' を使うことができます。
測地系の詳細については、 測地系 - Wikipedia を参照してください。
7.4.3.17. WGS84GeoPoint
#
世界測地系(World Geodetic System, WGS 84)による経緯度であり、経度と緯度をミリ秒単位で表現した整数の組により表現します。(デフォルト値: 0x0)
度分秒形式からミリ秒形式への変換方法や load コマンドにおける指定方法はTokyoGeoPointと同じです。
7.4.4. 型に関する制限事項#
7.4.4.1. テーブルの主キーに指定できない型#
Text型とLongText型については、テーブルの主キーに指定することはできません。
7.4.4.2. ベクターとして格納できない型#
Groongaのカラムは、ある型のベクターを保存することができます。しかし、ShortText, Text, LongTextの3つの型についてはベクターとして保存したり出力したりすることはできますが、検索条件やドリルダウン条件に指定することができません。
テーブル型は、ベクターとして格納することができます。よって、ShortTextのベクターを検索条件やドリルダウン条件に使用したい場合には、主キーがShortText型のテーブルを別途作成し、そのテーブルを型として利用します。