SQLAlchemy教程-第二章-SQL常用查詢的ORM寫法
阿新 • • 發佈:2018-07-03
elf class sql with primary 就是 lena == from
今天是2018-07-02.
今天來寫一些常用的SQL查詢的ORM寫法.
- 先把Emp, 也就是員工表的模型補上.
class Emp(Base): __tablename__ = ‘emp‘ empno = Column(Integer, primary_key=True) ename = Column(String(10)) job = Column(String(9)) mgr = Column(Integer) hiredate = Column(Date) comm = Column(DECIMAL(7, 2)) deptno = Column(Integer, ForeignKey(‘dept.deptno‘)) def __repr__(self): # 定義這個方法是為了方便打印到控制臺查看. return str({ ‘empno‘: self.empno, ‘ename‘: self.ename, ‘job‘: self.job, ‘deptno‘: self.deptno })
- 接下來, 我們進行一些基本的查詢.
from models import * def query_emp(): emp1 = sess.query(Emp).first() print(emp1) # 查詢名字叫Smith的員工 def query_emp_with_filter(): emp1 = sess.query(Emp).filter(Emp.ename == ‘Smith‘).first() print(emp1) # 查詢名字叫Smith, 職務為CLERK的一個員工 def query_emp_with_filters(): emp1 = sess.query(Emp).filter(Emp.ename == ‘Smith‘, Emp.job == ‘CLERK‘).first() print(emp1) # 查詢職務為CLERK的全部員工 def query_emp_all_clerks(): emp_clerks = sess.query(Emp).filter(Emp.job == ‘CLERK‘).all() for clerk in emp_clerks: print(clerk) # 查詢員工的名字和工號, 並按入職日期排序 def query_emp_empno_ename_order_by_hiredate(): emps = sess.query(Emp.empno, Emp.ename, Emp.job, Emp.hiredate).order_by(Emp.hiredate.asc()).all() for item in emps: print(item.empno, item.ename, item.job, item.hiredate) if __name__ == ‘__main__‘: query_emp_empno_ename_order_by_hiredate()
今天限於時間, 先這麽多. 講解比較粗劣, 各位同學有問題, 請留言.
SQLAlchemy官方網站
http://docs.sqlalchemy.org/en/latest/contents.html
教程全部代碼github地址
https://github.com/notfresh/sqlalchemy_demo
SQLAlchemy教程-第二章-SQL常用查詢的ORM寫法