MySQLでフラグを扱うならtinyint(1)型!定義方法と実用例を解説
MySQLでフラグに適したデータ型は?
MySQLでフラグ(ON/OFF、はい/いいえといった真偽値)を表現する場合、tinyint(1)型を使用するのが一般的です。tinyint(1)は0または1の値を格納でき、消費ストレージも最小限に抑えられるため、フラグ管理に最適なデータ型です。
フラグカラムの定義方法
フラグを設定するには、カラムの型をtinyint(1)として定義します。DEFAULT句を組み合わせれば、デフォルト値も指定できます。以下が基本の構文です。
yourColumnName tinyint(1) DEFAULT 1;
テーブル作成の実例
それでは、実際にフラグカラムを含むテーブルを作成してみましょう。
mysql> create table DemoTable
(
ClientId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
ClientName varchar(20),
isMarried tinyint(1) DEFAULT 1
);
Query OK, 0 rows affected (0.64 sec)この例では、isMarriedカラムをtinyint(1)型で定義し、デフォルト値を1に設定しています。INSERT時に明示的に値を指定しない場合、自動的に1が格納される仕組みです。
レコードの挿入
次に、INSERTコマンドを使ってテーブルにデータを登録します。
mysql> INSERT INTO DemoTable(ClientName,isMarried) values('Larry',0);
Query OK, 1 row affected (0.16 sec)
mysql> INSERT INTO DemoTable(ClientName) values('David');
Query OK, 1 row affected (0.12 sec)
mysql> INSERT INTO DemoTable(ClientName,isMarried) values('Mike',1);
Query OK, 1 row affected (0.19 sec)
mysql> INSERT INTO DemoTable(ClientName) values('Carol');
Query OK, 1 row affected (0.14 sec)ポイントは、値を指定しなかった「David」と「Carol」のレコードにも、DEFAULT設定により自動的に1が格納される点です。
登録データの確認
SELECT文を使って、テーブル内のすべてのレコードを表示してみましょう。
mysql> select *from DemoTable;
実行すると、フラグとして設定されたカラムを含む以下の結果が得られます。
+----------+------------+-----------+ | ClientId | ClientName | isMarried | +----------+------------+-----------+ | 1 | Larry | 0 | | 2 | David | 1 | | 3 | Mike | 1 | | 4 | Carol | 1 | +----------+------------+-----------+ 4 rows in set (0.00 sec)
まとめ
MySQLでフラグを管理する際は、tinyint(1)型とDEFAULT句を組み合わせることで、シンプルかつ効率的に真偽値を扱えます。0と1で状態を表現するこの方法は、Boolean的な扱いが可能なため、実務のデータベース設計でも広く採用されています。
-
LinuxとBSD徹底比較:どちらを選ぶべき?違いをわかりやすく解説
WindowsやMac OS Xの「代替OS」として、当サイトではこれまでLinuxを数多く取り上げてきました。しかし、選択肢はこの3つだけではありません。Unix系オペレーティングシステムのファミリーである「BSD」も存在します。そして技術的に言えば、BSDはLinuxとは異なる存在なのです。 公平な比較という観点から、BSDにもスポットライトを当てるべき時が来ました。そこで本記事では、BSDとLinuxを対比しながら、「BSDには何が違うのか」「Linuxの代わりにBSDを使うべきなのか」を考えていきます。さらに、デスクトップ用途において最有力のBSDであるPC-BSDは、Linuxと比べ
-
SCPとSFTPの違いを徹底解説!ファイル転送にはどちらを使うべきか
SCP(Secure Copy Protocol)とSFTP(Secure File Transfer Protocol)は、ローカル環境での不定期なファイル転送に便利なFTP(File Transfer Protocol)の代替手段として広く利用されているプロトコルです。この3つはいずれも、Ethernet経由でファイルをある場所から別の場所へ移動するために役立ちます。ただし、FTPがデータを平文で送信するのに対し、SCPとSFTPの2つはSSH(Secure Shell)プロトコルを使用して通信を行う点が大きく異なります。 SCPとSFTPとは何か? SCP(Secure Copy Pr