美文网首页
3.3 SQLAlchemy的参数

3.3 SQLAlchemy的参数

作者: yungege | 来源:发表于2019-08-19 11:46 被阅读0次

    SQLAlchemy的ORM(2)

    Column常用参数:

    • default:默认值。
    • nullable:是否可空。
    • primary_key:是否为主键。
    • unique:是否唯一。
    • autoincrement:是否自动增长。
    • onupdate:更新的时候执行的函数。
    • name:该属性在数据库中的字段映射。

    sqlalchemy常用数据类型:

    • Integer:整形。
    • Float:浮点类型。
    • Boolean:传递True/False进去。
    • DECIMAL:定点类型。
    • enum:枚举类型。
    • Date:传递datetime.date()进去。
    • DateTime:传递datetime.datetime()进去。
    • Time:传递datetime.time()进去。
    • String:字符类型,使用时需要指定长度,区别于Text类型。
    • Text:文本类型。
    • LONGTEXT:长文本类型。

    MySQL TEXT数据类型的最大长度

    TINYTEXT 256 bytes
    TEXT 65,535 bytes ~64kb
    MEDIUMTEXT 16,777,215 bytes ~16MB
    LONGTEXT 4,294,967,295 bytes ~4GB

    query可用参数:

    1. 模型对象。指定查找这个模型中所有的对象。
    2. 模型中的属性。可以指定只查找某个模型的其中几个属性。
    3. 聚合函数。
      • func.count:统计行的数量。
      • func.avg:求平均值。
      • func.max:求最大值。
      • func.min:求最小值。
      • func.sum:求和。

    过滤条件:

    过滤是数据提取的一个很重要的功能,以下对一些常用的过滤条件进行解释,并且这些过滤条件都是只能通过filter方法实现的:

    1. equals

      query.filter(User.name == 'ed')
      
    2. not equals:

      query.filter(User.name != 'ed')
      
    3. like

      query.filter(User.name.like('%ed%'))
      
    4. in

      query.filter(User.name.in_(['ed','wendy','jack']))
      # 同时,in也可以作用于一个Query
      query.filter(User.name.in_(session.query(User.name).filter(User.name.like('%ed%'))))
      
    5. not in

      query.filter(~User.name.in_(['ed','wendy','jack']))
      
    6. is null

      query.filter(User.name==None)
      # 或者是
      query.filter(User.name.is_(None))
      
    7. is not null:

      query.filter(User.name != None)
      # 或者是
      query.filter(User.name.isnot(None))
      
    8. and

      from sqlalchemy import and_
      query.filter(and_(User.name=='ed',User.fullname=='Ed Jones'))
      # 或者是传递多个参数
      query.filter(User.name=='ed',User.fullname=='Ed Jones')
      # 或者是通过多次filter操作
      query.filter(User.name=='ed').filter(User.fullname=='Ed Jones')
      
    9. or

      from sqlalchemy import or_  query.filter(or_(User.name=='ed',User.name=='wendy'))
      

    相关文章

      网友评论

          本文标题:3.3 SQLAlchemy的参数

          本文链接:https://www.haomeiwen.com/subject/zkrssctx.html