データベースに接続する

Pythonで学ぶデータベース入門

Jason Myers

Co-Author of Essential SQLAlchemy and Software Engineer

SQLAlchemy の概要

  • 主要な構成要素は2つ
    • Core(リレーショナルモデル重視)
    • ORM(ユーザーデータモデル重視)
Pythonで学ぶデータベース入門

データベースには多くの種類がある

  • SQLite
  • PostgreSQL
  • MySQL
  • Microsoft SQL Server
  • Oracle SQL
  • その他多数
Pythonで学ぶデータベース入門

データベースへの接続

from sqlalchemy import create_engine

engine = create_engine('sqlite:///census_nyc.sqlite')
connection = engine.connect()
  • Engine: SQLAlchemy からDBへの共通インターフェース
  • 接続文字列: DBの場所と認証に必要な情報一式
Pythonで学ぶデータベース入門

接続文字列について一言

ドライバーと方言

        Driver + Dialect

Pythonで学ぶデータベース入門

接続文字列について一言

ファイル名

                                                                                               ファイル名

Pythonで学ぶデータベース入門

データベースの中身は?

クエリの前に、中身を確認します。たとえばテーブル名:

from sqlalchemy import create_engine

engine = create_engine('sqlite:///census_nyc.sqlite')
print(engine.table_names())
['census', 'state_fact']
Pythonで学ぶデータベース入門

リフレクション

リフレクションはDBを読み取り、SQLAlchemy の Table オブジェクトを作成します

from sqlalchemy import MetaData, Table

metadata = MetaData()
census = Table('census', metadata, autoload=True, autoload_with=engine)
print(repr(census))
Table('census', MetaData(bind=None), Column('state', VARCHAR(
length=30), table=<census>), Column('sex', VARCHAR(length=1),
table=<census>), Column('age', INTEGER(), table=<census>),
Column('pop2000', INTEGER(), table=<census>), Column('pop2008',
INTEGER(), table=<census>), schema=None)
Pythonで学ぶデータベース入門

練習しましょう!

Pythonで学ぶデータベース入門

Preparing Video For Download...