连接数据库,以及数据库操作合集
1.page_table =schema.Table('page',metadata, autoload=True) 表和metadata绑定,因为数据库中存在了,所以直接autoload就可以了
2.数据库的插入等操作,都是最基本的api,还有一个类似 endswith startswith等函数,很好用的
3.and_ or_ 等操作可以喝& | 互换
4.添删改查都有了,其中查询非常的多
代码如下,写的自我感觉很详细,需要先运行sqlalchemy整理(一)中的例子,创建数据库
from sqlalchemy.engine import create_engine from sqlalchemy import schema, types,select,delete,update #from db_init import artical_table,page_table ############table connection############## engine=create_engine("sqlite:///hello.db",echo=False) metadata=schema.MetaData(engine) page_table =schema.Table('page',metadata, autoload=True) connection = engine.connect() ###########table insert one #################### ins=page_table.insert() ins.execute(name=u'test1', title=u'Test Page', content=u'Some content!') connection.execute(ins,name=u'test', title=u'Test Page', content=u'Some content!') connection.execute(page_table.insert(),name=u'test1', title=u'Test Page', content=u'Some content!') ########## tbale insert two###################### ######## table select ########################## #fetchall s = select([page_table]) result = connection.execute(s) rows = result.fetchall() print rows print "*"*20 #use where s = select([page_table]).where(page_table.c.id==1) result = connection.execute(s) for row in result: print row #use where from sqlalchemy.sql import and_ from sqlalchemy.sql import or_ from sqlalchemy.sql import not_ from sqlalchemy.sql import func #use and_ s=select([page_table],and_(page_table.c.id>3,page_table.c.id<10)) print "#"*5 print s result = connection.execute(s) for row in result: print row print "#"*5 #use or_ s=select([page_table],or_(page_table.c.id==1,page_table.c.id==2)) print s print "#"*5 print s result = connection.execute(s) for row in result: print row print "#"*5 #use not_ s=select([page_table],not_(page_table.c.id==10)) result=connection.execute(s) for row in result: print row #use startswith print "use startswith" s=page_table.select(page_table.c.name.startswith("te")) result=connection.execute(s) for row in result: print row #use like print "use like" s=page_table.select(page_table.c.name.like("te%")) result=connection.execute(s) for row in result: print row #use like print "use like" s=page_table.select(page_table.c.name.like("te%")) result=connection.execute(s) for row in result: print row #use end with print "use endswith" s=select([page_table.c.name,page_table.c.id],page_table.c.name.endswith("t")) result=connection.execute(s) for row in result: print row #use end with print "count" s=select([func.count(page_table.c.id)]) result=connection.execute(s) for row in result: print row #use delete s=page_table.delete().where(page_table.c.id>10) connection.execute(s) print s #fetchall s = select([page_table]) result = connection.execute(s) rows = result.fetchall() print rows #use update s=page_table.update().values(title='xluren').where(id>0) connection.execute(s) print s #fetchall s = select([page_table]) result = connection.execute(s) rows = result.fetchall() print rows ''' all ways of selecting a column s = users.select(users.c.name == 'John') s = users.select(users.c.age < 40) s = users.select(and_(users.c.age < 40, users.c.name != 'Mary')) s = users.select(or_(users.c.age < 40, users.c.name != 'Mary')) s = users.select(not_(users.c.name == 'Susan')) s = users.select((users.c.age < 40) & (users.c.name != 'Mary')) s = users.select((users.c.age < 40) | (users.c.name != 'Mary')) s = users.select(~(users.c.name == 'Susan')) s = users.select(users.c.name.startswith('M')) s = users.select(users.c.name.like('%a%')) s = users.select(users.c.name.endswith('n')) s = users.select(users.c.age.between(30,39)) s = users.select(users.c.name.in_('Mary', 'Susan')) s = users.select(func.substr(users.c.name, 2, 1) == 'a') s = select([users], users.c.name != 'Carl') s = select([users.c.name, users.c.age], users.c.name != 'Carl') s = select([func.count(users.c.user_id)]) s = select([func.count("*")], from_obj=[users]) '''