 SQLAlchemy - Column详解
SQLAlchemy - Column详解
Column常用参数:
default:默认值
 nullable:是否可有
 primary_key:是否为主键
 unique:是否唯一
 autoincrement:是否自动增长
 onupdate:更新的时候执行的函数
 name:该属性在数据库中的字段映射
sqlalchemy常用数据类型:
Integer:整形
 Float:浮点类型
 Boolean:传递True/False
 DECIMAL:定点类型
 enum:枚举类型
 Date:传递datetime.date()进去
 Time:传递datatime.time()
 String:字符类型,使用时需要指定长度,区别于Text类型
 Text:文本类型
 LONGTEXT:长文本类型
 query可以参数:
模型对象。指定查找这个模型中所有的对象。
 模型中的属性。可以指定只查找某个模型的其中几个属性。
 聚合函数:
 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’]))
 #同时
 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’)
 或者
 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’))