1)根据主键查询
emp = session.get(Emp, 1)
2) 查询整张表的数据
a、返回模型对象
statement = select(Employee) list_emp = session.scalars(statement).all() for o in list_emp: print(o) # 需要在Employee模型类中增加一个__str__函数 def __str__(self): return f'{self.name}, {self.gender.value}, {self.sal}, {self.entry_date}'
b、返回row对象,一般用于指定返回的字段
statement = select(Employee.name, Employee.sal, Employee.gender) # list_emp中的元素不是模型对象, 而是包含多个字段只的row对象 list_emp = session.execute(statement).all() for row in list_emp: print(row.name, row.sal, row.gender.value)
c、执行原生的SQL,并返回row对象
执行原生sql sql_text = text('select id, name, sal, gender from t_emp') # list_emp中的元素不是模型对象, 而是包含多个字段只的row对象 list_emp = session.execute(sql_text).all() for row in list_emp: print(row) print(row.name, row.sal, row.gender)
d、执行原生的sql,并返回模型对象
执行原生sql sql_text = text('select id, name, sal, gender from t_emp') # 手动建立映射关系 new_sql = sql_text.columns(Employee.id, Employee.name, Employee.sal, Employee.gender) # 得到orm的查询语句 orm_sql = select(Employee).from_statement(new_sql) # list_emp中的元素是模型对象 list_emp = session.execute(orm_sql).scalars() for o in list_emp: print(type(o)) print(o)
标签:sal,常见,list,查询,emp,sql,Employee,操作,row From: https://www.cnblogs.com/yongheng999/p/18292337