SQLite-データ型
SQLiteデータ型は、オブジェクトのデータ型を指定する属性です。 SQLiteでは、各列、変数、および式に関連するデータ型があります。
テーブルを作成するときにこれらのデータ型を使用します。 SQLiteは、より一般的な動的型システムを使用します。 SQLiteでは、値のデータ型はコンテナではなく、値自体に関連付けられています。
SQLiteストレージクラス
SQLiteデータベースに格納されている各値は、次のストレージクラスのいずれかを持っています-
Sr.No. | Storage Class & Description |
---|---|
1 |
NULL 値はNULL値です。 |
2 |
INTEGER 値は符号付き整数で、値の大きさに応じて1、2、3、4、6、または8バイトで保存されます。 |
3 |
REAL 値は浮動小数点値で、8バイトのIEEE浮動小数点数として保存されます。 |
4 |
TEXT 値は、データベースエンコーディング(UTF-8、UTF-16BEまたはUTF-16LE)を使用して保存されたテキスト文字列です |
5 |
BLOB 値はデータのblobであり、入力されたとおりに保存されます。 |
SQLiteストレージクラスは、データ型よりも少し一般的です。 たとえば、INTEGERストレージクラスには、長さの異なる6つの異なる整数データ型が含まれます。
SQLiteアフィニティタイプ
SQLiteは、列の type affinity の概念をサポートしています。 どの列にも任意のタイプのデータを格納できますが、列の優先ストレージクラスは affinity と呼ばれます。 SQLite3データベース内の各テーブル列には、次のいずれかのタイプのアフィニティが割り当てられています-
Sr.No. | Affinity & Description |
---|---|
1 |
TEXT この列には、ストレージクラスNULL、TEXT、またはBLOBを使用してすべてのデータが格納されます。 |
2 |
NUMERIC この列には、5つのストレージクラスすべてを使用した値が含まれる場合があります。 |
3 |
INTEGER CAST式の例外を除き、NUMERICアフィニティを持つ列と同じように動作します。 |
4 |
REAL 整数値を浮動小数点表現に強制することを除いて、NUMERICアフィニティを持つ列のように動作します。 |
5 |
NONE アフィニティがNONEの列は、あるストレージクラスを別のストレージクラスよりも優先せず、あるストレージクラスから別のストレージクラスにデータを強制する試みは行われません。 |
SQLiteのアフィニティとタイプ名
次の表は、対応するアフィニティが適用されたSQLite3テーブルの作成中に使用できるさまざまなデータ型名を示しています。
Data Type | Affinity |
---|---|
|
INTEGER |
|
TEXT |
|
NONE |
|
REAL |
|
NUMERIC |
ブールデータ型
SQLiteには、別個のブールストレージクラスがありません。 代わりに、ブール値は整数0(偽)および1(真)として保管されます。
日付と時刻のデータ型
SQLiteには、日付や時刻を保存するための個別のストレージクラスはありませんが、SQLiteは日付と時刻をTEXT、REAL、またはINTEGER値として保存できます。
Sr.No. | Storage Class & Date Formate |
---|---|
1 |
「YYYY-MM-DD HH:MM:SS.SSS」などの形式の日付 |
2 |
REAL 紀元前4714年11月24日のグリニッジ正午からの日数 |
3 |
INTEGER 1970-01-01 00:00:00 UTCからの秒数 |
これらの形式のいずれかで日付と時刻を保存し、組み込みの日付と時刻の関数を使用して形式間で自由に変換することを選択できます。