w3resource

SQLite Boolean Data type and its implementation Explained


SQLite Boolean Data Type Explained

SQLite does not have a dedicated BOOLEAN data type, but it supports storing Boolean values using alternative data types such as INTEGER. In SQLite, the values TRUE and FALSE are typically represented as 1 and 0, respectively. This approach provides flexibility and compatibility with SQLite's dynamic typing system.


Boolean Storage in SQLite

SQLite uses the following conventions for Boolean values:

  • TRUE: Stored as 1.
  • FALSE: Stored as 0.

SQLite's dynamic typing allows storing Boolean values in any column, but it is common to use the INTEGER type for better clarity.


Syntax:

While SQLite does not provide explicit syntax for BOOLEAN, you can define a column as INTEGER for storing Boolean values:

CREATE TABLE table_name (
    column_name INTEGER -- Used to store TRUE (1) or FALSE (0)
);

Examples:

1. Creating a Table with a Boolean Column

Code:

-- Create a table with a column for Boolean values
CREATE TABLE tasks (
    id INTEGER PRIMARY KEY, -- Task ID
    description TEXT NOT NULL, -- Task description
    is_completed INTEGER NOT NULL DEFAULT 0 -- Boolean for task completion (0: FALSE, 1: TRUE)
);

Explanation:

  • The is_completed column stores Boolean values (0 for FALSE, 1 for TRUE).
  • The DEFAULT 0 ensures tasks are incomplete when initially created.

2. Inserting Boolean Values

Code:

-- Insert tasks with Boolean values
INSERT INTO tasks (description, is_completed) VALUES 
('Complete SQLite tutorial', 1), -- Task completed (TRUE)
('Learn Boolean in SQLite', 0);  -- Task not completed (FALSE)

Explanation:

  • The is_completed column explicitly receives 1 for TRUE and 0 for FALSE during insertion.

3. Querying Boolean Values

Code:

-- Retrieve tasks based on their completion status
SELECT * FROM tasks WHERE is_completed = 1;

Explanation:

  • This query retrieves all tasks marked as completed (is_completed = 1).

4. Updating Boolean Values

Code:

-- Mark a task as completed
UPDATE tasks SET is_completed = 1 WHERE id = 2;

Explanation:

  • The query updates the is_completed column to 1 (TRUE) for the task with id = 2.

5. Deleting Records Based on Boolean Values

Code:

-- Delete tasks that are completed
DELETE FROM tasks WHERE is_completed = 1;

Explanation:

  • This query deletes all rows where is_completed is 1 (TRUE).

Practical Applications of Boolean in SQLite

    1. Status Tracking: Indicating completion, availability, or visibility in tasks or items.

    2. Flags: Enabling or disabling features with binary values.

    3. Conditions: Handling toggles and switches in applications.


Key Points to Remember

  • SQLite doesn’t natively support BOOLEAN but uses INTEGER instead.
  • TRUE and FALSE are represented by 1 and 0, respectively.
  • Boolean values can be stored in any column type, but INTEGER is recommended for clarity.
  • Using default values (e.g., DEFAULT 0) ensures consistency when inserting new rows.

Conclusion

Although SQLite does not have a BOOLEAN type, its flexibility allows developers to use INTEGER effectively to store and manipulate Boolean values. Understanding this approach ensures efficient and consistent handling of binary data in SQLite databases.

Practical Guides to SQLite Snippets and Examples.



Follow us on Facebook and Twitter for latest update.