SQLのboolean型は、データベースにより実装が異なる 真偽NULLの判定方法サンプル
  • facebookページ
  • twitterページ
  • 2020.02.20

    SQLのboolean型は、データベースにより実装が異なる 真偽NULLの判定方法サンプル

    SQLのboolean型についてまとめています。

    以下のサンプルSQLは、MySQL8.0.18を前提としています。

    データ型booleanを使ったサンプルSQL

    Oracle、MySQL、PostgreSQLではTrue/Falseを扱うデータ型Booleanが使用可能です。SQL Serverでは、同等のbit型を使うことができます。bit型は1と0を取り扱い可能です。

    まずは、テスト用のテーブルboolean_testを作成しましょう。

    テーブルboolean_testは、varchar(4)のidと、boolean型のvalueの2カラムで構成しています。MySQLでは、booleanはtinyint型に置き換えられます。tinyintは0と1以外の値を格納することが可能なので、厳密なboolean型を扱うには挿入・更新時に値チェックが必要になります。Oracle、PostgreSQLではboolean型が提供されています。

    テーブルboolean_testに以下のデータを挿入します。

    • 0001 , 1
    • 0002, 0
    • 0003, NULL

    MySQLでは、(true)は1、(false)は0として扱われます。テーブルに格納される値は以下のようになります。

    where条件で、is true、is false、is null、is not trueを指定したときの結果は以下のようになります。

    insert時の値には(true)と(false)が使えます。以下のSQLは、次の2つのデータを挿入したときの例です。

    • 0004 , (true)
    • 0005, (false)

    データベースによっては、on、off、t、fなどが使えます。

    まとめ

    ポテパンダの一言メモ
    • boolean型は真(1)、偽(0)、NULLの3値を取ることができる
    • データーベースによってboolean型の実装には違いがある。MySQLでは実体はtinyintとなる。
    • where条件で真以外を指定するには、is not trueなどを指定し、偽とNULLを含める必要あり
    • データベースによって、真偽値はtrue、falseなどが使える


    優良フリーランス案件多数掲載中!
    フリーランスエンジニアの案件をお探しなら
    ポテパンフリーランス

    この記事をシェア

    • Facebookシェア
    • Twitterシェア
    • Hatenaシェア
    • Lineシェア
    pickup









    ABOUT US

    ポテパンはエンジニアと企業の最適なマッチングを追求する企業です。

    READ MORE