python访问数据库, sqlalchemy中的query方法

python访问数据库, sqlalchemy中的query方法

ID:19953774

大小:52.00 KB

页数:5页

时间:2018-10-08

python访问数据库, sqlalchemy中的query方法_第1页
python访问数据库, sqlalchemy中的query方法_第2页
python访问数据库, sqlalchemy中的query方法_第3页
python访问数据库, sqlalchemy中的query方法_第4页
python访问数据库, sqlalchemy中的query方法_第5页
资源描述:

《python访问数据库, sqlalchemy中的query方法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、SQLAlchemy中的Query方法在SQLAlchemy中执行查询是通过session对象的query方法完成的。query方法非常灵活,你可以根据需要使用不同的查询方式查找数据,下面一一举例。1.直接通过映射类查找:#Queryinguserinstanceforinstanceinsession.query(User).order_by(User.id):printinstance.name,instance.fullname这种方法只要在query方法中,将映射类作为参数,就可以查询出这个映射类代表的数据库表中的数据。其相当于下面的SQL语句:SELECTuser

2、s.idASusers_id,users.nameASusers_name,users.fullnameASusers_fullname,users.passwordASusers_passwordFROMusersORDERBYusers.id2.通过映射类的属性字段查询:#QueryingbyORM-instrumentforname,fullnameinsession.query(User.name,User.fullname):printname,fullname这种方法指定了查询的具体字段,而不是像第一种方法那样把映射类的所有字段都查询出来,其相当于执行了下面的S

3、QL语句:SELECTusers.nameASusers_name,users.fullnameASusers_fullnameFROMusers3.query查询的结果是保存在一个元组中的,所以我们可以在query中指定返回整个的映射类对象和其中的部分属性字段:#QueryingasaPythonobjectforrowinsession.query(User,User.name).all():printrow.User,row.name这种查询方法可以返回一个User对象以及它的name属性字段的值,其相当于执行了下面的SQL语句:SELECTusers.idASuse

4、rs_id,users.nameASusers_name,users.fullnameASusers_fullname,users.passwordASusers_passwordFROMusers其输出结果为一个元组和一个字符串:<user("ed","EdJones","f8x902")>ed<user("Wendy","WendyWilliams","foobar")>Wendy<user("Marry","MarryContrary","xxg527")>Marry<user("Fred","FredFlins

5、tone","blah")>Fred4.我们还可以给返回的结果起一个别名,或者叫标签:#Queryinglabeledforrowinsession.query(User.name.label('name_label')).all():print(row.name_label)这里的关键是label方法,它的意思是把User的name字段改个名字叫name_label,其相当于执行以下的SQL语句:SELECTusers.nameASname_labelFROMusers6.除了给映射类字段起别名,我们还可以给映射类起个别名:#Queryingwithaliasedfrom

6、sqlalchemy.ormimportaliaseduser_alias=aliased(User,name='user_alias')forrowinsession.query(user_alias,user_alias.name).all():printrow.user_alias这里要注意的是,我们引入了aliased函数,并且给User映射类起了个别名叫user_alias。然后我们就可以在query中使用这个别名了,它相当于是User对象。上面的代码相当于执行了以下SQL语句:SELECTuser_alias.idASuser_alias_id,user_ali

7、as.nameASuser_alias_name,user_alias.fullnameASuser_alias_fullname,user_alias.passwordASuser_alias_passwordFROMusersASuser_alias7.由于query的查询返回的是一个元组,所以我们可以利用Python对数组类对象进行“分片”的操作,来限制返回的结果集范围:#Queryingwithlimitandoffsetforuinsession.query(User).order_by(User.id)

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。