MySQL でブールデータ型を使用する

Preet Sanghavi 2023年1月3日
MySQL でブールデータ型を使用する

このチュートリアルでは、SQL でブールデータ型を使用する方法を理解することを目的としています。

データベース開発者はブールデータ型を使用することがあり、True または False の 2つの可能な値のみを許可します。可能な値が 2つしかない場合は、作業が簡単になります。

ブール値は SQL Server でサポートされているデータ型ではありませんが、SQL にブール値を格納する方法があります。この方法では、SQL で BIT データ型を使用します。

この記事では、SQL Server のビットデータ型を紹介します。SQL Server の場合、ビットデータは 0、1、NULL のいずれかの値のみを取ることができます。

ストレージに関しては、9 列未満のテーブルの場合、ビットデータは 1 バイトとして格納されます。このような列が 9〜16 のテーブルの場合、ビットデータは 2 バイトを使用します。

さらに、SQL テーブルの文字列値を BIT 値に変換できます。このステートメントがどのように機能するかを理解してみましょう。

ただし、開始する前に、操作するダミーデータセットを作成します。ここでは、テーブル student_details と、その中に stu_firstNamestu_lastNamestu_passed、および stu_id 列を作成します。

stu_passed 列は、学生が合格したかどうかを示す 1 または 0 のブール値を取ります。1 は学生が合格したことを表し、2 は学生が失敗したことを意味します。
-- create the table student_details
CREATE TABLE student_details(
  stu_id int,
  stu_firstName varchar(255) DEFAULT NULL,
  stu_lastName varchar(255) DEFAULT NULL,
  stu_passed BIT,
  primary key(stu_id)
);

次に、ブール値として機能する stu_passed を使用して、学生の詳細をテーブルに挿入します。

-- insert bulk rows to the table student_details
INSERT INTO student_details(stu_id,stu_firstName,stu_lastName,stu_passed) 
 VALUES(1,"Preet","Sanghavi",0),
 (2,"Rich","John",1),
 (3,"Veron","Brow",0),
 (4,"Geo","Jos",1),
 (5,"Hash","Shah",1),
 (6,"Sachin","Parker",1),
 (7,"David","Miller",0);

上記のコードは、テーブル student_details に学生データを入力します。このテーブルは、次のコマンドで視覚化できます。

SELECT * from student_details;

上記のコードブロックは、次の出力を生成します。

stu_id	stu_firstName   stu_lastName	stu_passed   
1		Preet			Sanghavi		0
2		Rich			John			1
3		Veron			Brow			0
4		Geo				Jos				1
5		Hash			Shah			1
6		Sachin			Parker			1
7		David			Miller			0

上記のように、stu_id の 1、3、および 7 の生徒は、stu_passed 列の値が 0 になります。これらの学生が試験に合格していないことを示しています。

一方、stu_id の 2、4、5、および 6 の生徒は、stu_passed 列の値が 1 になります。これらの学生が試験に合格したことを示します。

この BIT のアイデアを使用すると、SQL のブールデータ型に類似した値を格納するのに役立ちます。したがって、SQL でブール値を使用する方法を学びました。

著者: Preet Sanghavi
Preet Sanghavi avatar Preet Sanghavi avatar

Preet writes his thoughts about programming in a simplified manner to help others learn better. With thorough research, his articles offer descriptive and easy to understand solutions.

LinkedIn GitHub