Pythonでのデータベース操作

Pythonでデータベースを使う場合、PyMySQLなどのパッケージを用いてデータを抽出したりデータを挿入したりすることになる。 ここではPyMySQLよりもよりPythonっぽく扱えるパッケージであるSQLAlchemyを例に説明していく。




SQLAlchmyについて


SQLAlchmyはMySQL以外のSQL系データベースを一元的に扱うことができるパッケージでデータをclassに関連付けられる。 ただMySQLの場合はPyMySQLなどの別のパッケージを仲介させる必要があることに注意する。

インストールは以下のコマンド

$ pip install sqlalchemy

データベース(DB)への接続


まずはSQLAlchemyから接続に必要になるcreate_engineをインポートする。

from sqlalchemy import create_engine

次に接続先を設定する。

engine = create_engine("<DBの種類>+<仲介用ドライバー>://<ユーザー名>:<パスワード>@<接続先のアドレス>(:<接続先のポート>)/<DB名>?charset=<文字コード>")

データベースの窓口構築


SQLAlchmyはデータベースからデータをclassに関連付けて取り扱える。 そのためにその窓口となるclassを作って上げる必要がある。

from sqlalchemy.ext.declarative import declarative_base
(中略)
Base = declarative_base()
(中略)
class <class名(任意)>(Base):
  __tablename__ = '<Table名>'
  <Column名> = Column(<型、オプション等>)
  (後略)