SQLite クラシック チュ...login
SQLite クラシック チュートリアル
著者:php.cn  更新時間:2022-04-13 17:05:02

SQLiteデータ型


SQLite データ型は、オブジェクトのデータ型を指定するために使用される属性です。 SQLite のすべての列、変数、式には、関連付けられたデータ型があります。

テーブルの作成時にこれらのデータ型を使用できます。 SQLite は、より一般的な動的型システムを使用します。 SQLite では、値のデータ型は、そのコンテナではなく、値自体に関連します。

SQLite ストレージ クラス

SQLite データベースに格納されるすべての値には、次のいずれかのストレージ クラスがあります:

ストレージ クラス 説明
NULL 値は NULL 値です。
INTEGER値は、値のサイズに応じて、1、2、3、4、6、または 8 バイトに格納される符号付き整数です。
REAL 値は、8 バイトの IEEE 浮動小数点数として格納される浮動小数点値です。
TEXT 値は、データベース エンコーディング (UTF-8、UTF-16BE、または UTF-16LE) を使用して保存されたテキスト文字列です。
BLOB 値は、完全に入力に基づいて保存されたデータの blob です。

SQLite のストレージ クラスは、データ型よりも若干一般的です。たとえば、INTEGER ストレージ クラスには、さまざまな長さの 6 つの異なる整数データ型が含まれています。

SQLite アフィニティ タイプ

SQLite は、列に対する タイプ アフィニティ の概念をサポートしています。どの列もあらゆる種類のデータを格納できますが、その列の優先ストレージ クラスはその アフィニティ です。 SQLite3 データベースでは、各テーブルの列は次のタイプのアフィニティのいずれかに割り当てられます:

AffinityDescription
TEXTこの列は、ストレージ クラス NULL、TEXT、または BLOB を使用してすべてのデータを格納します。 。
NUMERICこの列には、5 つのストレージ クラスすべてを使用した値を含めることができます。
INTEGER CAST 式を除き、NUMERIC アフィニティを持つ列と同じです。
REAL は、整数値を強制的に浮動小数点表現に変換することを除いて、NUMERIC アフィニティを持つ列と似ています。
NONE アフィニティ NONE の列は、使用するストレージ クラスに優先順位を付けず、あるストレージ クラスから別のストレージ クラスにデータを強制しようともしません。

SQLite アフィニティと型名

次の表は、SQLite3 テーブルを作成するときに使用できるさまざまなデータ型名をリストし、対応するアプリケーション アフィニティも示しています。

INTTINYINTVARYING CHARACTER(255)実数 日付と時刻を上記の形式で保存でき、組み込みの日付と時刻関数を使用してさまざまな形式を自由に変換できます。
INTEGER
  • SMALLINT

  • MEDIUMINT

  • BIGINT

  • UNSIGNED B IG INT

  • INT2

  • INT8

  • INTEGER

  • CHARACTER(20)

VARCHAR(255)
  • NCHAR(55)

  • NATIVE CHARACTER(70)
  • データ型なし指定された
  • NONE
  • REAL
  • DOUBLE
  • DOUBLE PRECISION
  • FLOAT
  • 数値
  • 10進数(10,5)
BOOLEAN
DATE
  • DATETIME
  • NUMERIC
  • ブールデータ型

    SQLiteにはありません別のブール型ストレージ クラス。代わりに、ブール値は整数 0 (false) と 1 (true) として保存されます。
日付と時刻のデータ型
SQLite には日付や時刻を格納するための個別のストレージ クラスがありませんが、SQLite は日付と時刻を TEXT、REAL、または INTEGER 値として格納できます。
    ストレージクラス
  • 日付形式

  • TEXT

  • 「YYYY-MM-DD HH:MM:SS.SSS」形式の日付。
  • REAL
  • 紀元前 4714 年 11 月 24 日の正午 GMT から始まる日数。

  • INTEGER

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