As you can see for PSQL engine [1] there are many data types that
could be very useful. And so with other major engines.
For example, if you want specific SQL types, those are implemented.
if you want specfically a CHAR column, use types.CHAR. Or VARCHAR,
use types.VARCHAR. Other implemented SQL types are TIMESTAMP, CLOB
and BLOB.
But that's not all. For types that are totally specific to a certain
database, those are available as well, within the module for each
database.
for example,
import sqlalchemy.databases.mysql as mysql
import sqlalchemy.databases.postgres as postgres
mysql.MSEnum -> mysql's ENUM type
mysql.MSBigInteger -> mysql's BIGINTEGER type
postgres.PGInet -> Pg's INET type
postgres.PGArray -> Pg's ARRAY type
We also have a newer class of types that are generic, but will use a
more specific DB type if one is available. An example is the Interval
type. This will use a regular date column on most databases,
subtracting the difference from 1/1/1970 to get the result. But on
postgres, it uses the PGInterval type, which is PG's INTERVAL type.