在上一小节中介绍了
sqlalchemy
的安装及基本的使用,本小节介绍查询功能
1、all()
查询全部数据
from sqlalchemy_demo.connect import dbSession from sqlalchemy_demo.modules.user_module import UserModule def query_user(): rows = dbSession.query(UserModule).all() print(rows) if __name__ == "__main__": query_user()
2、first()
查询第一条数据
... def query_user(): rows = dbSession.query(UserModule).first() print(rows) ...
3、也可使用all()
查询后取下标的方式取数据
4、根据想要的字段返回数据
def query_user(): # 只返回user_name, password字段 rows = dbSession.query(UserModule.user_name, UserModule.password).filter(UserModule.id == 1).first() print(rows)
1、filter()
添加过滤条件(注意返回的依然是列表)
def query_user(): rows = dbSession.query(UserModule).filter(UserModule.id == 1).first() print(rows)
2、使用filter_by
过滤
def query_user(): rows = dbSession.query(UserModule).filter_by(id=1).first() print(rows)
3、关于filter
和filter_by
的区别
filter
中需要添加类对象,filter_by
不需要filter_by
中只能添加等于的条件,不能添加,不等于、大于小于等条件,filter
没有这个限制1、like
的使用
def query_user(): # 查询以王开头的user_name字段 rows = dbSession.query(UserModule).filter(UserModule.user_name.like('王%')).all() # 查询以五结尾的 # rows = dbSession.query(UserModule).filter(UserModule.user_name.like('%五')).all() print(rows)
2、notlike
的使用(与like
相反)
def query_user(): rows = dbSession.query(UserModule).filter(UserModule.user_name.notlike('%五')).all() print(rows)
3、in_([])
在什么里面
def query_user(): rows = dbSession.query(UserModule).filter(UserModule.user_name.in_(['王五', '马六'])).all() print(rows)
4、notin_([])
不包括的
5、is_()
精确查找
def query_user(): rows = dbSession.query(UserModule).filter(UserModule.user_name.is_(None)).all() print(rows)
6、isnot()
精确查找
1、all()
查询到全部
2、limit()
限制条数
... def query_user(): rows = dbSession.query(UserModule).limit(2).all() print(rows) ...
3、offset()
偏移
... def query_user(): rows = dbSession.query(UserModule).offset(2).all() print(rows) ...
4、slice()
切片的使用
def query_user(): rows = dbSession.query(UserModule).slice(1, 4).all() print(rows)
5、one()
查找一条,如果有多条就会报错
def query_user(): rows = dbSession.query(UserModule).filter_by(id=1).one() print(rows)
1、导包
from sqlalchemy import desc, asc
2、默认升序排序
def query_user(): rows = dbSession.query(UserModule).order_by(UserModule.id).all() print(rows)
3、使用降序
def query_user(): rows = dbSession.query(UserModule).order_by(desc(UserModule.id)).all() print(rows)
4、order_by
和limit
的使用
def query_user(): rows = dbSession.query(UserModule).order_by(desc(UserModule.id)).limit(2).all() print(rows)