"Datatypes" In SQLite - Part 2

Zum wunderbaren Kommentar bzgl. meines letzten Blog-Eintrags - eigentlich erst als Kommentar gedacht, aber aufgrund der Länge und der IMHO interessanten Beispiel jetzt doch als eigenständiger Eintrag:

Danke für den Auszug des SQLite-Manuals. Aber ich bleib dabei, das ist "unvorteilhaft" und nicht das, was man erwarten kann.

Was für einen Vorteil hat es für mich als User/Programmierer von SQLite, wenn die DB nichtmal den Typen überprüft? Das ich nochmals alles nachprogrammieren darf? Juche! Beispiel gefällig?
sqlite> create table foo ( a datetime ); sqlite> insert into foo values ('2008-09-04'); sqlite> insert into foo values ('04.09.2008'); sqlite> select * from foo order by a; 04.09.2008 2008-09-04
Nein, sorry, das kann man mir nicht mehr als Feature verkaufen. Und ganz so typeless ist sie ja auch nicht... Beispiel?
sqlite> create table int1 ( feld integer ); sqlite> create table int2 ( feld varchar(10) ); sqlite> insert into int1 values ('104'); sqlite> insert into int1 values ('10'); sqlite> insert into int1 values ('4'); sqlite> insert into int2 values (104); sqlite> insert into int2 values (10); sqlite> insert into int2 values (4); sqlite> select * from int1 order by feld; 4 10 104 sqlite> select * from int2 order by feld; 10 104 4
Hier wird also doch das Typenfeld der Definition bzgl. der Suche interpretiert.

Aber halt! Man kann ja den Typen auch weglassen! Was passiert dann?
sqlite> create table int3 ( feld ); sqlite> create table int4 ( feld ); sqlite> insert into int3 values ('104'); sqlite> insert into int3 values ('10'); sqlite> insert into int3 values ('4'); sqlite> insert into int4 values (104); sqlite> insert into int4 values (10); sqlite> insert into int4 values (4); sqlite> select * from int3 order by feld; 10 104 4 sqlite> select * from int4 order by feld; 10 104 4
Der geneigte Bastler entnimmt, das SQLite offensichtlich alles als String behandelt, außer es könnte, unter Umständen, vielleicht, irgendwo, bei Westwind, zunehmenden Mond oder sonstigen nicht durchsehbaren Zuständen doch irgendwo eine Typendefinition finden.

Mein Schluss: Zum Entwickeln auf dem Laptop ja. Produktiv? Never! :-(