SQLAlchemy数据库操作例子

来源:网络 责任编辑:栏目编辑 发表时间:2013-07-01 16:21 点击:

Python代码 
#建表 
from sqlalchemy import create_engine,Table,Column,Integer,String,MetaData,ForeignKey 
engine = create_engine('sqlite:///:memory:',echo=True) 
metadata = MetaData() 
users = Table('users',metadata, 
              Column('id',Integer,primary_key=True), 
              #SQLite和Postgresql允许不带长度,如果是其他数据库则应该为 
              #Column('name',String(50)), 
              Column('name',String), 
              Column('fullname',String), 
              ) 
 
address = Table('address',metadata, 
                Column('id',Integer,primary_key=True), 
                Column('user_id',None,ForeignKey('users.id')), 
                Column('email_address',String,nullable=False), 
                ) 
metadata.create_all(engine) 
 
#插入 
#coding:GBK 
from connection import * 
 
ins = users.insert().values(name='jack',fullname='jack Jones') 
print str(ins) 
print ins.compile().params 
 
#Executing 
conn = engine.connect() 
print conn 
result = conn.execute(ins) 
print result.inserted_primary_key 
 
#Executing Multipe Statements 
ins = users.insert() 
conn.execute(ins,id=2, name='wendy',fullname='Wendy Williams') 
 
conn.execute(address.insert(),[ 
    {'user_id':1,'email_address':'jack@yahoo.com'}, 
    {'user_id':1,'email_address':'jack@msm.com'}, 
    {'user_id':2,'email_address':'www@www.org'}, 
    {'user_id':2,'email_address':'wendy@aol.com'},                           
]) 
 
#Bind Connection 
metadata.bind = engine 
result = users.insert().execute(name='mary',fullname='Mary contary') 
 
#查询 
from InsertExpressions import * 
from sqlalchemy.sql import select,text 
s = select([users]) 
result = conn.execute(s) 
for row in result: 
    print row 
result = conn.execute(s) 
row = result.fetchone() 
print row 
print row['name'],row['fullname'] 
 
s = select([users.c.name, users.c.fullname]) 
result = conn.execute(s) 
for row in result: 
    print row 
     
for row in conn.execute(select([users, address])): 
    print row 
 
s = select([users, address], users.c.id==address.c.user_id) 
for row in conn.execu

    相关新闻>>

      发表评论
      请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
      用户名: 验证码:点击我更换图片
      最新评论 更多>>

      推荐热点

      • sql常见面试题
      • SQL SERVER 2005性能之跟踪
      • SQL编程(一)
      • LINUX上RMAN自动备份脚本
      • sql server面试题
      • 如何将多个SQL查询统计结果一次显示出来
      • 浅谈SQL Server中的事务日志(三)----在简单恢复模式下日志的角色
      • SQL小技巧系列 --- 行转列合并
      • sql server 列转行
      网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
      Copyright © 2008-2015 计算机技术学习交流网. 版权所有

      豫ICP备11007008号-1