1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

初心者向け:Python × SQLデータベースの最強タッグ「SQLAlchemy」入門!

Posted at

こんにちは!この記事では、Pythonでデータベース操作を便利にするライブラリ「SQLAlchemy」について、初心者にもわかりやすく解説します。


✅ SQLAlchemyとは?

SQLAlchemy(エスキューエル・アルケミー)は、Pythonでデータベース操作を抽象化するライブラリです。
SQL文を書かなくても、Pythonのコードだけでデータベースを操作できるようになります。

簡単に言えば「PythonでSQLを書かずにSQLを使える魔法」のようなもの!


🧱 2つの使い方がある

SQLAlchemyには主に2つのレベルがあります:

モード 説明 難易度
Core 生SQLに近い書き方。SQLを抽象化して扱う。 中級者向け
ORM(Object Relational Mapper) クラスとテーブルを1対1でマッピング。Djangoっぽい。 初心者でも扱いやすい ✅

この記事では、初心者に優しい ORMモード を中心に紹介します!


🔧 インストール方法

pip install sqlalchemy

DBドライバも一緒に入れます(例:SQLiteやPostgreSQL)

pip install sqlite3  # SQLiteはPythonに標準で入ってるので省略可
pip install psycopg2  # PostgreSQL用

📄 モデル定義(PythonクラスとDBテーブルを対応させる)

from sqlalchemy import Column, Integer, String, create_engine
from sqlalchemy.orm import declarative_base

Base = declarative_base()

class User(Base):
    __tablename__ = 'users'

    id = Column(Integer, primary_key=True)
    name = Column(String)
    email = Column(String)

→ このクラスを書くだけで、SQLのテーブル定義が完了します。


🚀 DBに接続してテーブルを作る

engine = create_engine('sqlite:///mydb.sqlite3')
Base.metadata.create_all(engine)

mydb.sqlite3 というSQLiteファイルが作られ、中に users テーブルができます。


✍️ データの追加・取得(セッションを使う)

from sqlalchemy.orm import Session

# セッション開始
session = Session(bind=engine)

# ユーザーの追加
new_user = User(name="Taro", email="taro@example.com")
session.add(new_user)
session.commit()

# ユーザーの取得
users = session.query(User).all()
for user in users:
    print(user.name, user.email)

✅ よくある使い方(チートシート)

操作 コード例
データ追加 session.add(obj)session.commit()
データ取得 session.query(User).all()
条件付き検索 session.query(User).filter(User.name == "Taro").first()
更新 user.name = "Jiro"session.commit()
削除 session.delete(user)session.commit()

💡 こんなときに便利!

  • 複雑なSQLクエリをPythonで管理したい
  • データベースの変更に強く、可読性の高いコードが書きたい
  • Djangoより自由度が高いORMが欲しい
  • FastAPIと一緒に使ってAPI + DBを連携させたい

🧠 まとめ

項目 内容
ライブラリ名 SQLAlchemy
主な機能 DB操作の抽象化(ORM)
よく使う場面 API開発、データ処理、自作アプリ
初心者向け機能 ORMモード(クラスベースでDB設計)

📚 さらに学びたい方へ

  • 公式ドキュメント:https://docs.sqlalchemy.org/
  • 実践例:FastAPI + SQLAlchemy + Alembic(マイグレーション)
  • async対応:SQLModelAsyncSession の活用もおすすめ
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?