Sqlalchemy-dialects
SQLAlchemy-方言
SQLAlchemyは方言のシステムを使用して、さまざまなタイプのデータベースと通信します。 各データベースには、対応するDBAPIラッパーがあります。 すべての方言では、適切なDBAPIドライバーがインストールされている必要があります。
次の方言がSQLAlchemy APIに含まれています-
- 火の鳥
- Microsoft SQL Server
- MySQL
- オラクル
- PostgreSQL
- SQL
- Sybase
URLに基づくエンジンオブジェクトは、create_engine()関数によって生成されます。 これらのURLには、ユーザー名、パスワード、ホスト名、データベース名を含めることができます。 追加の構成用のオプションのキーワード引数があります。 ファイルパスが受け入れられる場合もあれば、「データソース名」が「ホスト」と「データベース」の部分を置き換える場合もあります。 データベースURLの典型的な形式は次のとおりです-
PostgreSQL
PostgreSQLダイアレクトは、デフォルトのDBAPIとして psycopg2 を使用します。 pg8000は、以下に示すように、純粋なPythonの代替としても使用できます。
MySQL
MySQLダイアレクトは、デフォルトのDBAPIとして mysql-python を使用します。 次のようなMySQL-connector-pythonなど、多くのMySQL DBAPIが利用可能です-
オラクル
Oracleの方言は、次のようにデフォルトのDBAPIとして cx_oracle を使用します-
Microsoft SQL Server
SQL Serverの方言は、デフォルトのDBAPIとして pyodbc を使用します。 pymssqlも利用できます。
SQLite
SQLiteは、デフォルトでPython組み込みモジュール sqlite3 を使用して、ファイルベースのデータベースに接続します。 SQLiteはローカルファイルに接続するため、URL形式はわずかに異なります。 URLの「ファイル」部分は、データベースのファイル名です。 相対ファイルパスの場合、以下に示すように3つのスラッシュが必要です-
そして、絶対ファイルパスの場合、3つのスラッシュの後に絶対パスが続きます-
SQLite:memory:databaseを使用するには、以下に示すように空のURLを指定します-
結論
このチュートリアルの最初の部分では、式言語を使用してSQLステートメントを実行する方法を学びました。 式言語は、PythonコードにSQLコンストラクトを埋め込みます。 後半では、SQLAlchemyのオブジェクトリレーションマッピング機能について説明しました。 ORM APIは、SQLテーブルをPythonクラスにマップします。