Sqlite-data-types

提供:Dev Guides
Sqlite-data-typesから転送)
移動先:案内検索

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
  • INT
  • 整数
  • ティニイント
  • SMALLINT
  • BIGINT
  • 符号なしの大きなINT
  • INT2
  • INT8
INTEGER
  • キャラクター(20)
  • VARCHAR(255)
  • さまざまな文字(255)
  • NCHAR(55)
  • ネイティブキャラクター(70)
  • NVARCHAR(100)
  • TEXT
  • CLOB
TEXT
  • BLOB
  • データ型が指定されていません
NONE
  • REAL
  • ダブル
  • 倍精度
  • 浮く
REAL
  • 数値
  • 10進数(10,5)
  • ブーリアン
  • DATE *日付時刻
NUMERIC

ブールデータ型

SQLiteには、別個のブールストレージクラスがありません。 代わりに、ブール値は整数0(偽)および1(真)として保管されます。

日付と時刻のデータ型

SQLiteには、日付や時刻を保存するための個別のストレージクラスはありませんが、SQLiteは日付と時刻をTEXT、REAL、またはINTEGER値として保存できます。

Sr.No. Storage Class & Date Formate
1
  • TEXT*

「YYYY-MM-DD HH:MM:SS.SSS」などの形式の日付

2

REAL

紀元前4714年11月24日のグリニッジ正午からの日数

3

INTEGER

1970-01-01 00:00:00 UTCからの秒数

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