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のデータベース列では親和性の次のいずれかのタイプに割り当てられます。
Affinity | 描述 |
---|---|
TEXT | 该列使用存储类 NULL、TEXT 或 BLOB 存储所有数据。 |
NUMERIC | 该列可以包含使用所有五个存储类的值。 |
INTEGER | 与带有 NUMERIC affinity 的列相同,在 CAST 表达式中带有异常。 |
REAL | 与带有 NUMERIC affinity 的列相似,不同的是,它会强制把整数值转换为浮点表示。 |
NONE | 带有 affinity NONE 的列,不会优先使用哪个存储类,也不会尝试把数据从一个存储类强制转换为另一个存储类。 |
SQLiteのアフィニティ名とタイプ
次の表は、作成するSQLite3テーブルを使用することができたときに、さまざまなデータ型の名前が表示されますが、また、対応するアプリケーションの親和性を示しています。
数据类型 | Affinity |
---|---|
| INTEGER |
| TEXT |
| NONE |
| REAL |
| NUMERIC |
ブーリアン型
SQLiteはブールストレージクラスを分離しません。 逆に、ブール値は0(偽)と1(真)の整数として格納されます。
日付と時刻のデータ型
SQLiteはTEXT、REALまたはINTEGER値として格納することができ、日付および/または記憶クラス、SQLiteのが、日付と時刻の時間のための個別のストレージを持っていません。
存储类 | 日期格式 |
---|---|
TEXT | 格式为 "YYYY-MM-DD HH:MM:SS.SSS" 的日期。 |
REAL | 从公元前 4714 年 11 月 24 日格林尼治时间的正午开始算起的天数。 |
INTEGER | 从 1970-01-01 00:00:00 UTC 算起的秒数。 |
あなたは、日付と時刻を格納するために上記の形式のいずれかを注文することができ、あなたは異なるフォーマットを変換解放するために、組み込みの日付と時刻の関数を使用することができます。