猫と遊ぶ 見習いプログラマーの備忘録

日々の学んだ事を随時更新。主にプログラム。その他いろいろ

Python的なコードでDBを操作する【SQLAlchemy】その1

【SQLAlchemy】は、「エスキューエルアルケミー」と呼ぶそうな。

今回は、SQLを直接記述せずにPython的なコードでDBを操作する方法をまとめてみる。

SQLAlchemyに対応している(2018年3月現在)DBは以下の通り

MySQL / PostgreSQL / SQLite / Microsoft SQLServer / Oracle / Firebird / Sybase


SQLAlchemyインストール後の大まかな手順は以下の通り
1.モジュールを読み込ませる

2.DBの作成

3.モデルとテーブルを作成する

4.セッションの作成とCRUD処理


私の場合はAnaconda Promptで行ったので、以下のコマンドでインストールする
pip install SQLAlchemy
pip install psycopg2

インストールできたら、まずは手順の1.モジュールを読み込ませる

from sqlalchemy import create_engine, Colum, Integer, String, DateTime
from sqlalchemy .ext.declarative import declarative_base
from sqlalchemy .orm import sessionmaker
from sqlalchemy .orm.exc import NoResultFound

上記のモジュールを詳しく説明すると、
create_engine ⇒ DB接続するためのもの。エンジン生成の際には、「create_engine()」を一度だけ書く
Colum ⇒ カラム。DBのはなしで、テーブルの縦の列のこと。
Integer ⇒ 数字、整数型。
String ⇒ 文字型。
DateTime ⇒ 日時。
declarative_base ⇒ クラス定義を自動的にテーブル定義と紐づけるようにする
sessionmaker ⇒ sessionmaker() 関数。SQLAlchemyはこのセッションを通してクエリを実行する。


次に手順の2.DBの作成
DBの作成というよりかは、接続情報を設定する感じ。

engine = create_engine("mysql+pymysql://ユーザー名:パスワード@ホスト名/DB名")

※今回はMySQLを使用するので、上記設定になっている


次の手順3以降は次回に!

SQLAlchemyのイイトコロは、DBに関係なく、同じコードで書けるということ!