Is there a boolean literal in SQLite? Is there a boolean literal in SQLite? sqlite sqlite

Is there a boolean literal in SQLite?


From section 1.1 Boolean Datatype of the docs:

SQLite does not have a separate Boolean storage class. Instead, Boolean values are stored as integers 0 (false) and 1 (true).

So it looks like you are stuck with 0 and 1.


Is there a boolean literal in SQLite?

As stated in Justin Ethier's answer, SQLite does not have specific data type for boolean. But starting from SQLite 3.23.0 it supports true/false literals:

  1. Recognize TRUE and FALSE as constants. (For compatibility, if there exist columns named "true" or "false", then the identifiers refer to the columns rather than Boolean constants.)

  2. Support operators IS TRUE, IS FALSE, IS NOT TRUE, and IS NOT FALSE.

SELECT true AS t, false AS f;SELECT 'condition is true'WHERE 1 IS NOT FALSE;CREATE TABLE a (id INT, b BOOLEAN DEFAULT(TRUE));INSERT INTO a(id) VALUES(100);SELECT * FROM a;-- id  b-- 100 1SELECT * FROM a WHERE true;-- id  b-- 100 1

dbfiddle.com demo


1.1 Boolean Datatype

SQLite does not have a separate Boolean storage class. Instead, Boolean values are stored as integers 0 (false) and 1 (true).

Docs