MySQLのtinyint(1)にtrueとfalseが入る

MySQLのtinyint(1)にtrueとfalseが入る

MySQLでテーブルを作成する際にbooleanと指定するとtinyint(1)になります。

CREATE TABLE IF NOT EXISTS テーブル名 (
  カラム名 boolean NOT NULL,
  ~
);

MySQLのtinyint(1)という定義にすると-128から127までを入れることができます。

これは1byteだからです。

MySQLのint,bigint,decimalの使い分けについて

それとは別に、insert文だとtrue,falseを入れることができます。trueの場合1、falseの場合0となります。

CREATE TABLE IF NOT EXISTS Users (
flag tinyint(1) NOT NULL
);

これで以下インサートを発行するとtrueの場合1、falseの場合0となることが確認できます。

INSERT INTO users(flag) VALUES (true);
INSERT INTO users(flag) VALUES (false);

bit(1)にすると、trueなら1,falseなら0が入ります。その他の値が入る事はありません。

コメント

タイトルとURLをコピーしました