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