title: SQlite difference between FALSE and 0
body: <p>these both statements seem to make a difference, but I do not yet get why:</p>
  
  <pre><code>ALTER TABLE FOO ADD COLUMN DELETED BOOLEAN NOT NULL DEFAULT FALSE
  </code></pre>
  
  <p>seems to behave differently than:</p>
  
  <pre><code>ALTER TABLE FOO ADD COLUMN DELETED BOOLEAN NOT NULL DEFAULT 0
  </code></pre>
  
  <p>can anyone shed some light on this - I thought FALSE is 0 and TRUE is 1 - but this boolean seems to have >= 4 states:</p>
  
  <pre><code>➜  ~  sqlite3               
  SQLite version 3.8.7.4 2014-12-09 01:34:36
  Enter ".help" for usage hints.
  Connected to a transient in-memory database.
  Use ".open FILENAME" to reopen on a persistent database.
  sqlite&gt; CREATE TABLE FOO ( id INTEGER );sqlite&gt; INSERT INTO FOO ( id ) VALUES (1);
  sqlite&gt; select * from FOO;
  1
  sqlite&gt; ALTER TABLE FOO ADD COLUMN DELETED BOOLEAN NOT NULL DEFAULT FALSE;sqlite&gt; select * from FOO;
  1|FALSE
  sqlite&gt; ALTER TABLE FOO ADD COLUMN DELETED2 BOOLEAN NOT NULL DEFAULT 0;
  sqlite&gt; select * from FOO;
  1|FALSE|0
  sqlite&gt; ALTER TABLE FOO ADD COLUMN DELETED3 BOOLEAN NOT NULL DEFAULT TRUE;
  sqlite&gt; select * from FOO;
  1|FALSE|0|TRUE
  sqlite&gt; ALTER TABLE FOO ADD COLUMN DELETED4 BOOLEAN NOT NULL DEFAULT 1;
  sqlite&gt; select * from FOO;
  1|FALSE|0|TRUE|1
  
  sqlite&gt; select * from FOO WHERE DELETED;
  sqlite&gt; select * from FOO WHERE DELETED2;
  sqlite&gt; select * from FOO WHERE DELETED3;
  sqlite&gt; select * from FOO WHERE DELETED4;
  1|FALSE|0|TRUE|1
  </code></pre>