专栏首页工作笔记精华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可以参数:

  1. 模型对象。指定查找这个模型中所有的对象。
  2. 模型中的属性。可以指定只查找某个模型的其中几个属性。
  3. 聚合函数:
    1. func.count:统计行的数量
    2. func.avg:求平均值
    3. func.max:求最大值
    4. func.min:求最小值
    5. 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'))

(adsbygoogle = window.adsbygoogle || []).push({});

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • JS之clientX,clientY,screenX,screenY,offsetX,offsetY区别测试

    首先需要知道clientX,clientY,screenX,screenY,offsetX,offsetY 是鼠标事件对象下的几个属性.

    stys35
  • flink-RichAsyncFunction

    stys35
  • jsch channel is not opened

    Jsch使用的时候碰到一个问题, 调试后发现 ssh到服务器非常的卡, 建立查询服务器内存,可能是内存不够用了。

    stys35
  • Java8-对List转换Map、分组、求和、过滤

    在java8之后我们list转map再也不用循环put到map了,我们用lambda表达式,使用stream可以一行代码解决,下面我来简单介绍list转map的...

    胖虎
  • JDK8新特性之Stream流

    是什么是Stream流 java.util.stream.Stream Stream流和传统的IO流,它们都叫流,却是两个完全不一样的概念和东西。 流可以简单的...

    Java技术栈
  • TypeScript 期中考试现在开始!

    相信这段时间来,对 TypeScript 感兴趣的小伙伴们已经把这个神器给系统的学习了一遍了吧。如果计划开始学习但是还没有开始,或者没有找到资料的同学,可以看下...

    ssh1995
  • Comparator 和 Comparable的区别

    1.位置 Comparable 位于 java.lang,我们都知道 java.lang包可以说是 java体系中基础包,有 ClassLoader、Clas...

    shengjk1
  • TreeSet集合解析

     TreeSet是实现Set接口的实现类。所以它存储的值是唯一的,同时也可以对存储的值进行排序,排序用的是二叉树原理。所以要理解这个类,必须先简单理解一下什么...

    Kevin_Zhang
  • kali工具-DNSenmum

    首先下载 git clone https://github.com/fwaeytens/dnsenum.git 根据里面的INSTALL.txt来安装 首...

    bboysoul
  • java之封装

    java中通过将成员变量声明为private,再提供公共的public方法:setXxx()和getXxx()实现对该属性的操作,以实现以下目的:

    绝命生

扫码关注云+社区

领取腾讯云代金券