SQLAlchemy —— 数据类型

Flask 学习笔记

一、sqlalchemy 常用数据类型


  • Integer:整形。

  • Float:浮点类型(四舍五入保留 4 为小数)。

  • DECIMAL:定点类型(可规定数据长度及小数位数)。

  • Boolean:传递 True 、 False 进去,在数据库中的显示 1 和 0。

  • enum:枚举类型(只能输入 Enum 所包含的数值。如:男,女)。

  • Date:传递 datetime.date() 进去,数据库中存储 年月日

  • Time:传递 datetime.time() 进去,数据库中存储 时分秒

  • DateTime:传递 datetime.datetime() 进去,数据库中存储 年月日 时分秒 。传入 datetime(2020, 4, 20, 21, 35, 23)

  • String:字符类型,使用时需要指定长度,区别于 Text 类型。

  • Text:文本类型。

  • LONGTEXT:长文本类型。

	# 这些数据类型都是要导入的
	from sqlalchemy import Column, Integer, String, Float, DECIMAL, Boolean, Enum, Date, DateTime, Time
	from sqlalchemy.dialects.mysql import LONGTEXT


    id = Column(Integer, primary_key=True, autoincrement=True)
    
    name = Column('fullname', String(60))
    
    price = Column(Float)
    # 总共有 20 位,  保留 5 位小说
    price = Column(DECIMAL(20, 5))
    
    is_delete = Column(Boolean)
    
    gender = Column(Enum('男', '女'))
    
    create_time = Column(DateTime)
    
    content = Column(LONGTEXT)
    
    # onupdate 可以也写一个函数  修改记录的时候触发更新
    update_time = Column(DateTime, onupdate=datetime.now())



二、Column 常用参数


  • default:默认值。

  • nullable:是否可空。nullable=False 不允许为空

  • primary_key:是否为主键。

  • unique:是否唯一,存放的内容唯一。

  • autoincrement:是否自动增长。

  • onupdate:更新的时候执行的函数。例如文件的修改时间,就可以在修改了数据后触发执行该函数。

  • name:该属性在数据库中的字段名字

	name = Column(String(60), name='fullname')

	# 在数据库中显示的该字段名为 fullname



三、query 可用参数


3.1、模型对象

    article = session.query(Article).first()
    # 打印对象
    print(article)

3.2、模型中的属性

    article = session.query(Article).first()
    # 打印对象属性
    print(article.title)

3.3、聚合函数

  1. count:统计行的数量。

  2. avg:求平均值。

  3. max:求最大值。

  4. min:求最小值。

  5. sum:求和。

	# 要先导入 func
	from sqlalchemy import func
	
	
	# 统计行的数量
	result = session.query(func.count(Article.id)).first()
	print(result)
	
	# 平均值
	result = session.query(func.avg(Article.price)).first()
	print(result)
	
	# 最大值
	result = session.query(func.max(Article.price)).first()
	print(result)
	
	# 最小值
	result = session.query(func.min(Article.price)).first()
	print(result)
	
	# 求和
	result = session.query(func.sum(Article.price)).first()
	print(result)
  • 9
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值