sql >> データベース >  >> RDS >> SQLite

Typeof()がSQLiteでどのように機能するか

    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            

    1. Oracle DB:大文字と小文字を区別せずにクエリを作成するにはどうすればよいですか?

    2. SELECTクエリでのSQLServerLOCKSについて

    3. SQLite-データの更新

    4. MySQL用のNavicat