1. TOP
  2. プログラム
  3. ソフト
  4. python
  5. SQL表現言語

SQL表現言語

SQL表現原語

ひとつ上がって、SQLAlchemyのSQL表現言語である。
表現言語は、さまざまな操作のためのSQLを関数を導入する。
表現言語は、低水準エンジンレイヤよりも多くのSQL方言の違いに対処
する仕事をする。
これはリレーショナルデータベースアプリケーションに対する中間的な
アプローチとしてっ便利に使える。
zooテーブルを作って、内容を書き込む
import sqlalchemy as sa
conn = sa.create_engin('aqlits://')
zooテーブルを定義するのに、SQLではなく表現言語を使う
meta = sa.MetaData()
zoo = sa.Table('zoo', meta,
sa.Column('critter', sa.String, primary_key=True),
sa.Column('count', sa.INTEGER),
sa.Column('damages', sa.Float)
)
meta.create_all(conn)
zooはSQLデータベースの世界とPYthonデータ構造の世界を橋渡し
する、オブジェクトになっている。
表現言語の関数を使ってさらにデータを挿入する
conn.execute(zoo.insert(('bear, 2, 1000.0')))
conn.execute(zoo.insert(('weasel, 1, 2000.0')))
conn.execute(zoo.insert(('duck, 10, 10.0')))
次にSERECT文を作る。
result = conn.execute(zoo.select())
結果を取得する
rows = result.fetchall()
print(rows)

ORM

オブジェクト関係マッピング
クラスを定義すると、ORMがデータベースとの間のデータのやりとり
を処理してくれる。リレーショナルデーターベースを使いつつ、コード内
でオブジェクトを参照し、PYthon的なやりとりでコードを書き続けられる。
import sqlalchemy as sa
from sqlalchemy.ext.declarative import declarative_base
次に、接続を解説する。
conn = es.create_engins('sqlite:///zoo.db')
次はORMに入っていく。
Base = declarative_base()
class Zoo(base):
__tablename__ = 'zoo'
critter = sa.Column('critter', sa.String, Primary_key=True)
count = sa.Column('count', sa.Integer)
damages = sa.Column('damages', sa.Float)
def __init__(self, critter, count, damages)
self.critter = critter
self.count = cout
swlf.damages = damages
def __repr__(self):
return "<zoo({}, {},="" {})="">".format(self.critter, self.cutter)
, self.damages)
次の行で手品のようにダータベースとテーブルが作られる
Base.metadata.create_all(conn)
次に、Pythonpオジェクトを作れば、データを挿入で見る。ORMの
内部で両者の関連を管理している
first = Zoo('dock', 10, 0.0)
second = Zoo('Bear', 2, 1000.0)
third = Zoo('weasel', 1, 2000.0)
次は、データーベースとやりとりするセッションを作る。</zoo({},>