SQLiteのtypeof()
関数を使用すると、式のデータ型を判別できます。
式は、次のデータ型のいずれかになります。
- null
- 整数
- 本物
- テキスト
- ブロブ
例
実例を示します。
SELECT typeof('Avocado');
結果:
text
さらにいくつかあります:
SELECT
typeof(12),
typeof(X'12'),
typeof(1.23),
typeof(NULL);
結果:
typeof(12) typeof(X'12') typeof(1.23) typeof(NULL) ---------- ------------- ------------ ------------ integer blob real null
データベースの例
SQLiteは、他のほとんどのリレーショナルデータベース管理システムで使用されているような静的型付けとは対照的に、動的型システムを使用します。
SQLiteでは、値のデータ型は、コンテナーではなく、値自体に関連付けられています。これは、列にさまざまなタイプのデータを含めることができることを意味します。たとえば、ある行のその列にテキストがあり、別の行に整数が含まれている場合があります。
この概念を示す例を次に示します。
次の製品という表を見てください :
ProductId ProductName Price ---------- -------------- ---------- 1 Homer's Widget 10.0 2 Peter's Widget 20.75 3 Bob's Widget 15.0 4 777
この表では、最後の行のデータは他の行とは異なっているように見えます。
typeof()
が何であるか見てみましょう 関数が戻ります。
SELECT
ProductId,
typeof(ProductName),
typeof(Price)
FROM Products;
結果:
ProductId typeof(ProductName) typeof(Price) ---------- ------------------- ------------- 1 text real 2 text real 3 text real 4 integer null
予想どおり、最後の行は ProductNameのさまざまなデータ型を返します および価格 列。
表現
typeof()
関数は、特定の式が返す可能性のあるデータ型を確認するのに便利です。
SELECT
typeof(1),
typeof(1 + 1.5),
typeof(1 + NULL);
結果:
typeof(1) typeof(1 + 1.5) typeof(1 + NULL) ---------- --------------- ---------------- integer real null