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

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

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

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

SQLite ストレージ クラス

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

次のことwing SQLite で使用できるストレージ クラスは次のとおりです。

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

SQLite アフィニティ タイプ

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

これらの型は、SQLite と他の型の間の互換性を最大化するために SQLite に導入されました。 データベース管理システム.

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

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

SQLite が宣言されたデータ型から列のアフィニティを判断する方法は次のとおりです。

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

同じページに表もあります笑wing SQLite データ型とこれらのルールによって決定されるその親和性の間のマッピングの例をいくつか示します。

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

SQLite でのデータ型の保存の例

SQLite整数で数値を保存する

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

全員フォローwing データ型は INTEGER 型のアフィニティとして割り当てられます。

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

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

SQLite REAL を使用して数値を保存する

REAL 数値は次の数値です。 double 浮動小数点の精度。 SQLite は実数を 8 バイトの配列として格納しました。 REAL 数値の格納に使用できる SQLite のデータ型のリストは次のとおりです。

  • リアル。
  • DOUBLE.
  • DOUBLE 精度。
  • 浮く。

SQLite BLOB を使用して大規模なデータを保存する

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

SQLite ブール値の保存

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

SQLite の日付と時刻の保存

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

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

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

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

まとめ

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