1. 程式人生 > >sqlalchemy欄位與mysql資料庫欄位對應問題

sqlalchemy欄位與mysql資料庫欄位對應問題

欄位型別是在定義模型時, 對每個 Column 的型別約定. 不同型別的欄位型別在輸入輸出上, 及支援的操作方面, 有所區別.

這裡只介紹 sqlalchemy.types.* 中的型別, SQL 標準型別方面, 是寫什麼最後生成的 DDL 語句就是什麼, 比如 BIGINTBLOG 這些, 但是這些型別並不一定在所有資料庫中都有支援. 除此而外, SQLAlchemy 也支援一些特定資料庫的特定型別, 這些需要從具體的 dialects 實現裡匯入.

Integer/BigInteger/SmallInteger
整形.
Boolean
布林型別. Python 中表現為 True/False
 , 資料庫根據支援情況, 表現為 BOOLEAN 或SMALLINT . 例項化時可以指定是否建立約束(預設建立).
Date/DateTime/Time (timezone=False)
日期型別, Time 和 DateTime 例項化時可以指定是否帶時區資訊.
Interval
時間偏差型別. 在 Python 中表現為 datetime.timedelta() , 資料庫不支援此型別則存為日期.
Enum (*enums, **kw)
列舉型別, 根據資料庫支援情況, SQLAlchemy 會使用原生支援或者使用 VARCHAR 型別附加約束的方式實現. 原生支援中涉及新型別建立, 細節在例項化時控制.
Float
浮點小數.
Numeric (precision=None, scale=None, decimal_return_scale=None, ...)
定點小數, Python 中表現為 Decimal .
LargeBinary (length=None)
位元組資料. 根據資料庫實現, 在例項化時可能需要指定大小.
PickleType
Python 物件的序列化型別.
String (length=None, collation=None, ...)
字串型別, Python 中表現為 Unicode , 資料庫表現為 VARCHAR , 通常都需要指定長度.
Unicode
類似與字串型別, 在某些資料庫實現下, 會明確表示支援非 ASCII 字元. 同時輸入輸出也強制是 Unicode
 型別.
Text
長文字型別, Python 表現為 Unicode , 資料庫表現為 TEXT .
UnicodeText
參考 Unicode .