zoukankan      html  css  js  c++  java
  • SQLAlchemy教程-第二章-SQL常用查询的ORM写法

    今天是2018-07-02.
    今天来写一些常用的SQL查询的ORM写法.

    1. 先把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
            })
    
    1. 接下来, 我们进行一些基本的查询.
    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

  • 相关阅读:
    嵌入式C程序基础与编程结构
    英特尔图形处理器第8代架构
    用servlet打内容到网页上
    servlet获取多个同名参数
    JAVA之复制数组
    用JAVA写一个简单的英文加密器
    Tomcat使用
    JAVA,字符串替换
    使用自己的域名解析博客园地址(CSDN也可以)
    错误笔记20181124
  • 原文地址:https://www.cnblogs.com/notfresh/p/9256350.html
Copyright © 2011-2022 走看看