SQLite データ型と例: Int、Text、Numeric、Real、Blob

データ型 SQLite 他のデータベース管理システムとは異なります。で SQLite、通常どおりデータ型を宣言できますが、任意のデータ型に任意の値を格納できます。

SQLite タイプが少なくなります。データ型はありません。任意の列に任意のタイプのデータを格納できます。これは動的型と呼ばれます。

静的型では、他のデータベース管理システムと同様、データ型が整数の列を宣言した場合、データ型が整数の値のみを挿入できます。ただし、次のような動的型では、 SQLite、列のタイプは挿入された値によって決まります。その後 SQLite 型に応じてその値を保存します。

SQLite ストレージクラス

In SQLite 値のタイプに応じて異なるストレージ メソッドがあり、これらの異なるストレージ メソッドは、以下ではストレージ クラスと呼ばれます。 SQLite.

利用可能なストレージクラスは次のとおりです。 SQLite:

  • NULL – このストレージ クラスは、NULL 値を格納するために使用されます。
  • 整数 – あらゆる数値は符号付き整数値として保存されます (正と負の両方の整数値を保持できます)。 INTEGER 値 SQLite 数値は、数値の値に応じて、1、2、3、4、6、または 8 バイトのストレージに格納されます。
  • リアル – このストレージ クラスは浮動小数点値を格納するために使用され、浮動小数点値は 8 バイトのストレージに格納されます。
  • TEXT – テキスト文字列を保存します。 UTF-8、UTF-16 BE、UTF-26LE などのさまざまなエンコーディングもサポートしています。
  • BLOB – 画像やテキスト ファイルなどの大きなファイルを保存するために使用されます。 値は入力値と同じバイト配列として格納されます。

SQLite アフィニティタイプ

タイプ アフィニティは、列に格納されるデータの推奨タイプです。 ただし、必要に応じて任意のタイプのデータを保存できます。これらのタイプは必須ではないことをお勧めします。

これらのタイプは、 SQLite 間の互換性を最大限に高めるために SQLite およびその他の データベース管理システム.

で宣言された列 SQLite データベースには、宣言されたデータ型に応じて型のアフィニティが割り当てられます。ここで型アフィニティのリフト SQLite:

  • 文章。
  • 数値。
  • 整数。
  • リアル。
  • ブロブ。

ここに SQLite 宣言されたデータ型から列のアフィニティを決定します。

  1. INTEGER アフィニティは、宣言された型に次のものが含まれる場合に割り当てられます。 stringINT"
  2. 列のデータ型に以下の文字列のいずれかが含まれている場合、TEXTアフィニティが割り当てられます。TEXT"、"CHAR、または "CLOB”。 たとえば、VARCHAR 型には TEXT アフィニティが割り当てられます。
  3. 列の型が指定されていない場合、またはデータ型が BLOB の場合、BLOB アフィニティが割り当てられます。
  4. REALアフィニティは、タイプに以下の文字列のいずれかが含まれている場合に割り当てられます。ダブル"、"リアル、または "FLOAT"
  5. NUMERIC アフィニティは、他のデータ型に割り当てられます。

同じページには、以下のマッピングの例を示す表もあります。 SQLite データ型とその親和性は、次のルールによって決定されます。

SQLite アフィニティタイプ
間のマッピング SQLite データ型とアフィニティ

データ型の格納例 SQLite

番号を保存する SQLite 整数

データ型の列に「INT」ワードが含まれる場合、INTEGER 型のアフィニティが割り当てられます。 これは INTEGER ストレージ クラスに格納されます。

次のすべてのデータ型は、INTEGER 型のアフィニティとして割り当てられます。

  • INT、整数、BIGINT。
  • INT2、INT4、INT8。
  • TINYINT、SMALLINT、MEDIUM INT。

INTEGER 型アフィニティ SQLite 1 バイトから最大 8 バイトまでの任意の割り当てられた整数 (正または負) を保持できます。

数値を保存する SQLite リアル

REAL 数は、倍精度浮動小数点数です。 SQLite 実数を8バイトの配列として保存します。以下は、 SQLite REAL 数値を格納するために使用できます。

  • リアル。
  • ダブル。
  • 倍精度。
  • 浮く。

大規模なデータを保存する SQLite BLOB

大きなファイルを保存する方法は 1 つだけです。 SQLite データベースであり、BLOB データ型を使用しています。このデータ型は、画像やファイル (任意の種類) などの大きなファイルを保存するために使用されます。ファイルはバイト配列に変換され、入力ファイルと同じサイズで保存されます。

保存 SQLite ブール

SQLite 独立した BOOLEAN ストレージ クラスはありません。ただし、BOOLEAN 値は、値 0 (false として) または 1 (true として) を持つ INTEGERS として格納されます。

保存 SQLite 日時

日付または日付時刻を宣言できます SQLite 次のいずれかのデータ型を使用します。

  • DATE
  • 日付時刻
  • タイムスタンプ
  • タイム

独立した DATE または DATETIME ストレージ クラスは存在しないことに注意してください。 SQLite代わりに、以前のデータ型のいずれかで宣言された値は、挿入された値の日付形式に応じて、次のようにストレージ クラスに格納されます。

  • TEXT – ISO8601 文字列の形式 (「YYYY-MM-DD HH:MM:SS.SSS」) で日付値を挿入した場合。
  • リアル – 日付値をユリウス日数で挿入した場合、紀元前 24 年 4714 月 XNUMX 日のグリニッジの正午からの日数になります。日付値は REAL として保存されます。
  • 整数 as Unixの 時間、1970-01-01 00:00:00 UTC からの秒数。

まとめ

SQLite 幅広いデータ型をサポートします。しかし同時に、データ型に関しては非常に柔軟です。任意のデータ型に任意の値型を含めることができます。 SQLite また、他のデータベース管理システムとは異なり、型の類似性やストレージ クラスなどのデータ型に関するいくつかの新しい概念も導入されました。