title: SQLite3's dynamic typing
body: <p>SQLite3 uses dynamic typing rather than static typing, in contrast to other flavors of SQL.  The <a href="http://www.sqlite.org/datatype3.html" rel="noreferrer">SQLite website</a> reads:</p>
  <blockquote>
  <p>Most SQL database engines (every SQL database engine other than SQLite, as far as we know) uses static, rigid typing. With static typing, the datatype of a value is determined by its container - the particular column in which the value is stored.</p>
  <p>SQLite uses a more general dynamic type system. In SQLite, the datatype of a value is associated with the value itself, not with its container.</p>
  </blockquote>
  <p>It seems to me that this is exactly what you <em>don't</em> want, as it lets you store, for example, strings in integer columns.</p>
  <p>The page continues:</p>
  <blockquote>
  <p>...the dynamic typing in SQLite allows it to do things which are not possible in traditional rigidly typed databases.</p>
  </blockquote>
  <p>I have two questions:</p>
  <ol>
  <li>The use case question:  What are some examples where SQLite3's dynamic typing is beneficial?</li>
  <li>The historical/design question:  What was the motivation for implementing SQLite with dynamic typing?</li>
  </ol>