SQLite3は、他の種類のSQLとは対照的に、静的型付けではなく動的型付けを使用します。SQLiteのWebサイトには次のように書かれています。
ほとんどのSQLデータベースエンジン(私たちが知る限り、SQLite以外のすべてのSQLデータベースエンジン)は、静的で厳密な型指定を使用します。静的型付けでは、値のデータ型はそのコンテナー(値が格納されている特定の列)によって決定されます。
SQLiteは、より一般的な動的型システムを使用します。SQLiteでは、値のデータ型は、コンテナーではなく、値自体に関連付けられています。
たとえば、文字列を整数列に格納できるので、これはまさにあなたが望まないことのように思えます。
ページは続きます:
... SQLiteの動的型付けにより、従来の厳密に型付けされたデータベースでは不可能なことが可能になります。
2つの質問があります:
- ユースケースの質問:SQLite3の動的型付けが有益な例は何ですか?
- 歴史的/設計上の質問:動的型付けでSQLiteを実装する動機は何でしたか?