59342
<https://docs.sqlalchemy.org/en/13/core/type_basics.html>

上記、sqlalchemy に定義されているデータ型のドキュメントを眺めていました。

たとえばテキスト型であれば、 `sqlalchemy.types.Text` と、 `sqlalchemy.types.TEXT`
が定義されているのがみて取れます。

### 質問

  * 上記ページに記載されている、 CameCase のデータ型と、 CONSTCASE のデータ型の違いは何ですか？
  * 実際に上記データ型を用いて、 orm のモデルを定義するような場合には、どちらを利用するべきですか？
CC BY-SA 4.0
2019-09-22T03:41:14.440
59198
2019-09-29T14:30:54.910
754
question
python sqlalchemy
sqlalchemy.types の、 CamelCase と CONSTCASE のデータ型の違いは何？
参照先の他に、これらの記事と併せてみると、以下のように思われます。  
[Generic Types | Defining Schema in SQLAlchemy Core -
OverIQ.com](https://overiq.com/sqlalchemy-101/defining-schema-in-sqlalchemy-
core/#generic-types)  
[Defining Schema in SQLAlchemy ORM -
OverIQ.com](https://overiq.com/sqlalchemy-101/defining-schema-in-sqlalchemy-
orm/)  
[SQLAlchemy Types Generic vs
SQL](https://books.google.co.jp/books?id=5p0bCwAAQBAJ&pg=PA2&lpg=PA2&dq=SQLAlchemy+Types+Generic+vs+SQL&source=bl&ots=u5-lNLU3VK&sig=ACfU3U3Vblw7p-4jS-E1P83ItZTaE3L8DA&hl=ja&sa=X&ved=2ahUKEwj
--
Jv57vXkAhXJaN4KHUGVDboQ6AEwBnoECAkQAQ#v=onepage&q=SQLAlchemy%20Types%20Generic%20vs%20SQL&f=false)  
[Essential SQLAlchemy by Rick Copeland Chapter 4. SQLAlchemy Type
Engines](https://www.oreilly.com/library/view/essential-
sqlalchemy/9780596516147/ch04.html)

**CamelCase のデータ型と、 CONSTCASE のデータ型の違いは何ですか？**

  * CamelCase のデータ型  
ジェネリック型と呼ばれ、主要なデータベースバックエンドがサポートする一般的な型を指します。  
ジェネリック型を使用する場合、SQLAlchemyはテーブルの作成中にデータベースバックエンドで利用可能な最適な型を使用します。

  * CONSTCASE のデータ型  
SQL標準型またはマルチベンダ型/ベンダ固有型と呼ばれ、SQL標準仕様または個々のデータベースバックエンドに固有の型を指します。  
「ジェネリック型」とは異なり、「SQL標準/マルチベンダ/ベンダ固有型」はすべてのデータベースバックエンドで動作することを保証せず、名前で明示的にサポートするバックエンドでのみ動作します。

**実際に上記データ型を用いて、 orm のモデルを定義するような場合には、どちらを利用するべきですか？**

  * CamelCase のデータ型と思われます。  
特定の何かを使いたいとか、何らかの事情で使わざるを得ない場合以外は、CamelCaseのジェネリック型を使う方が良いと思われます。

関係は薄い(というか無い?)ですが他に興味を引いた記事：  
[SQLAlchemyなどのORMエンジンを使う意味](https://teratail.com/questions/150308)  
[とりあえず使えそうな SQLAlchemy 入門（※
ORM機能は使いません）](https://www.m3tech.blog/entry/sqlalchemy-tutorial)  
[PlaySQLAlchemy:
SQLAlchemy入門](https://www.slideshare.net/YasushiMasuda/playsqlalchemy-
sqlalchemy)
CC BY-SA 4.0
2019-09-29T14:30:54.910
59342
2019-09-29T14:30:54.910
26370
59198
answer