RDBの基礎とSQL操作
- 正規化: データの重複を排除し、整合性を保つテーブル設計手法。
- 主キー(Primary Key): レコードを一意に特定するID。
- 外部キー(Foreign Key): 他のテーブルを参照しリレーションを構築するキー。
SQL
-- ユーザーテーブル作成SQL
CREATE TABLE users (
id SERIAL PRIMARY KEY,
name VARCHAR(50) NOT NULL,
email VARCHAR(100) UNIQUE NOT NULL
);
-- データ抽出と結合 (JOIN)
SELECT users.name, orders.amount
FROM users
JOIN orders ON users.id = orders.user_id;
SQLAlchemyを用いたORM構築
ORM(Object-Relational Mapping)を使うと、SQLを書かずにPythonクラスとしてデータベース操作が行えます。
Python
from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.orm import declarative_base, sessionmaker
Base = declarative_base()
# モデル定義
class User(Base):
__tablename__ = "users"
id = Column(Integer, primary_key=True, autoincrement=True)
name = Column(String(50), nullable=False)
email = Column(String(100), unique=True, nullable=False)
# データベース接続の設定 (SQLite例)
engine = create_engine("sqlite:///app.db")
Base.metadata.create_all(engine)
SessionLocal = sessionmaker(bind=engine)
db = SessionLocal()
# CRUD操作: CREATE
new_user = User(name="Alice", email="alice@example.com")
db.add(new_user)
db.commit()
# CRUD操作: READ
user = db.query(User).filter(User.email == "alice@example.com").first()

コメント