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テーブルを作成するときに使用できるさまざまなデータ型名を示します。

データ・タイプ アフィニティ
  • INT
  • INTEGER
  • TINYINT
  • SMALLINT
  • MEDIUMINT
  • BIGINT
  • UNSIGNED BIG INT
  • INT2
  • INT8
整数
  • CHARACTER(20)
  • VARCHAR(255)
  • 変化する文字(255)
  • NCHAR(55)
  • ネイティブキャラクター(70)
  • NVARCHAR(100)
  • TEXT
  • CLOB
テキスト
  • BLOB
  • データ型が指定されていません
なし
  • REAL
  • DOUBLE
  • 倍精度
  • FLOAT
リアル
  • NUMERIC
  • DECIMAL(10,5)
  • BOOLEAN
  • DATE
  • DATETIME
数値

ブールデータ型

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からの秒数

日付と時刻をこれらの形式のいずれかで保存し、組み込みの日付と時刻関数を使用して形式を自由に変換することを選択できます。