MySQLではBOOL型とTINYINT型がブール値を表現するために使われますが、これらのデータ型にはいくつかの違いがあります。以下にその違いを具体的なコード例とともに説明します。

TINYINTとBOOLの定義

まず、TINYINTとBOOLの定義について見てみましょう。

CREATE TABLE example_table_tinyint (
    id INT PRIMARY KEY,
    flag TINYINT
);

CREATE TABLE example_table_bool (
    id INT PRIMARY KEY,
    flag BOOL
);

デフォルト値

TINYINTとBOOLのデフォルト値の挙動が異なります。TINYINTはデフォルトで0が設定されますが、BOOLはデフォルトでNULLです。

-- TINYINTのデフォルト値は0
INSERT INTO example_table_tinyint (id) VALUES (1);
-- flagの値は0
SELECT * FROM example_table_tinyint WHERE id = 1;

-- BOOLのデフォルト値はNULL
INSERT INTO example_table_bool (id) VALUES (1);
-- flagの値はNULL
SELECT * FROM example_table_bool WHERE id = 1;

TRUEとFALSEの挙動

TINYINTとBOOLでは、TRUEとFALSEの扱いも

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です