SQLite データベースの Boolean データ型

Vaibhav Vaibhav 2023年6月21日
SQLite データベースの Boolean データ型

SQLite データベースは、組み込みのファイルベースのリレーショナル データベース管理システム (RDBMS) であり、C プログラミング言語で記述されています。 これは、すぐに使えるライブラリの形で利用できます。

ファイルベースのデータベースは、すべてのデータベースとテーブルを格納する単一のファイルを作成します。

SQLite は軽量のデータベースであるため、PostgreSQL や MySQL などの同等のデータベースと比較して、さまざまな制限があります。 たとえば、SQLite は効率的なアクセスを提供しない、スケーラビリティに欠ける、マルチユーザー機能がない、データベース サイズの制約がある、巨大なテーブルの処理が遅い、最小限のセキュリティ、ストアド プロシージャがない、基本的なデータ型などがあります。

SQLite には、基本的なデータ型である Boolean もありません。 この記事では、既存のデータ型を使用して Boolean データ型を実装する方法を説明します。

SQLite データベースの Boolean データ型

SQLite データベースは Boolean データ型をサポートしていません。 ただし、SQLite データベースでブール値を表すには 2つの方法を使用できます。

Boolean データ型を整数として表す

ブール値フィールドは、truefalse の 2つの値のみを持つことができます。 整数を使用して、true1 として、false0 として表すことができます。

これは、文字列を処理するのに時間がかかり、ストレージにより多くのスペースを占有するため、文字列を使用するよりもブール値を表現するための優れたアプローチです。 01 の 2つの値が必要なため、ブール型フィールドは 1 ビットでも表すことができます。

例については、次の SQL スクリプトを参照してください。

-- creating a table
CREATE TABLE students (
    id INT NOT NULL,
    name VARCHAR(100) NOT NULL,
    age INT NOT NULL,
    international_student INT NOT NULL
);

-- inserting some data into the old table
INSERT INTO students VALUES (1, "Stefan", 13, 1);
INSERT INTO students VALUES (2, "Damon", 14, 0);
INSERT INTO students VALUES (3, "Elena", 12, 1);
INSERT INTO students VALUES (4, "Caroline", 12, 1);
INSERT INTO students VALUES (5, "Bonnie", 13, 0);

-- printing table
SELECT "Students";
SELECT "--------";
SELECT * FROM students;

出力:

Students
--------
1|Stefan|13|1
2|Damon|14|0
3|Elena|12|1
4|Caroline|12|1
5|Bonnie|13|0

Boolean データ型を文字列として表す

true"true" として、false"false" として文字列で表すことができます。 その他の表現スタイルは、T/FTRUE/FALSE、および True/False です。

例については、次の SQL スクリプトを参照してください。

-- creating a table
CREATE TABLE students (
    id INT NOT NULL,
    name VARCHAR(100) NOT NULL,
    age INT NOT NULL,
    international_student VARCHAR(5) NOT NULL
);

-- inserting some data into the old table
INSERT INTO students VALUES (1, "Stefan", 13, "true");
INSERT INTO students VALUES (2, "Damon", 14, "false");
INSERT INTO students VALUES (3, "Elena", 12, "true");
INSERT INTO students VALUES (4, "Caroline", 12, "true");
INSERT INTO students VALUES (5, "Bonnie", 13, "false");

-- printing table
SELECT "Students";
SELECT "--------";
SELECT * FROM students;

出力:

Students
--------
1|Stefan|13|true
2|Damon|14|false
3|Elena|12|true
4|Caroline|12|true
5|Bonnie|13|false
著者: Vaibhav Vaibhav
Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.