SQLiteデータ型
SQLite データ型は、オブジェクトのデータ型を指定するために使用される属性です。 SQLite のすべての列、変数、式には、関連付けられたデータ型があります。
テーブルの作成時にこれらのデータ型を使用できます。 SQLite は、より一般的な動的型システムを使用します。 SQLite では、値のデータ型は、そのコンテナではなく、値自体に関連します。
SQLite ストレージ クラス
SQLite データベースに格納されるすべての値には、次のいずれかのストレージ クラスがあります:
ストレージ クラス | 説明 |
---|---|
NULL | 値は NULL 値です。 |
INTEGER | 値は、値のサイズに応じて、1、2、3、4、6、または 8 バイトに格納される符号付き整数です。 |
REAL | 値は、8 バイトの IEEE 浮動小数点数として格納される浮動小数点値です。 |
TEXT | 値は、データベース エンコーディング (UTF-8、UTF-16BE、または UTF-16LE) を使用して保存されたテキスト文字列です。 |
BLOB | 値は、完全に入力に基づいて保存されたデータの blob です。 |
SQLite のストレージ クラスは、データ型よりも若干一般的です。たとえば、INTEGER ストレージ クラスには、さまざまな長さの 6 つの異なる整数データ型が含まれています。
SQLite アフィニティ タイプ
SQLite は、列に対する タイプ アフィニティ の概念をサポートしています。どの列もあらゆる種類のデータを格納できますが、その列の優先ストレージ クラスはその アフィニティ です。 SQLite3 データベースでは、各テーブルの列は次のタイプのアフィニティのいずれかに割り当てられます:
Affinity | Description |
---|---|
TEXT | この列は、ストレージ クラス NULL、TEXT、または BLOB を使用してすべてのデータを格納します。 。 |
NUMERIC | この列には、5 つのストレージ クラスすべてを使用した値を含めることができます。 |
INTEGER | CAST 式を除き、NUMERIC アフィニティを持つ列と同じです。 |
REAL | は、整数値を強制的に浮動小数点表現に変換することを除いて、NUMERIC アフィニティを持つ列と似ています。 |
NONE | アフィニティ NONE の列は、使用するストレージ クラスに優先順位を付けず、あるストレージ クラスから別のストレージ クラスにデータを強制しようともしません。 |
SQLite アフィニティと型名
次の表は、SQLite3 テーブルを作成するときに使用できるさまざまなデータ型名をリストし、対応するアプリケーション アフィニティも示しています。
INTINTEGER | |
---|---|
| |
| 実数 |
| BOOLEAN |
DATE
| SQLite には日付や時刻を格納するための個別のストレージ クラスがありませんが、SQLite は日付と時刻を TEXT、REAL、または INTEGER 値として格納できます。 |
|