一、新增数据  

# 新增一条数据
user_obj = User(name="bigberg", passwd="twgdh123")
Session.add(user_obj)
Session.commit() # 新增多条数据
user_obj1 = User(name="bigberg", passwd="twgdh123")
user_obj2 = User(name="someone", passwd="twgdh123")
Session.add_all([user_obj1,user_obj2]) Session.commit()

  

二、查询数据

2.1普通查询

# filter_by获取的是对象列表
data = Session.query(User).filter_by(name='bigberg').all()
print(data)
print(data[0].id, data[0].name, data[0].passwd) #输出
[<__main__.User object at 0x0000029DC2D51160>]
1 bigberg twgdh123 # 不指定条件
data = Session.query(User).filter_by().all()
print(data)
print(data[0].id, data[0].name, data[0].passwd) # 输出
[<__main__.User object at 0x0000026C9D27F0F0>, <__main__.User object at 0x0000026C9D27F160>, <__main__.User object at 0x0000026C9D27F1D0>]
1 bigberg twgdh123

  

2.2 查询数据显性展示

  在类中定义

class User(Base):
__tablename__ = "user" # 表名
id = Column(Integer, primary_key=True)
name = Column(String(32))
passwd = Column(String(64)) def __repr__(self):
return "id:%s name:%s password:%s" % (self.id, self.name, self.passwd) 
data = Session.query(User).filter_by().all()
print(data)
print(data[0].id, data[0].name, data[0].passwd) #输出
[id:1 name:bigberg password:twgdh123, id:2 name:Jerry password:twgdh123, id:3 name:Jack password:twgdh123]
1 bigberg twgdh123

  

2.3 获取第一条数据

data = Session.query(User).filter_by().first()
print(data)
print(data.id, data.name, data.passwd) # 输出
id:1 name:bigberg password:twgdh123
1 bigberg twgdh123

  

2.4 获取所有数据

print(Session.query(User.id, User.name, User.passwd).all())

#输出
[(1, 'bigberg', 'twgdh123'), (2, 'Jerry', 'twgdh123'), (3, 'Jack', 'twgdh123')]

  

2.5 多条件查询 

data = Session.query(User).filter(User.id > 2).filter(User.id < 7).all()
print(data) #输出
[id:3 name:Jack password:twgdh123]

  

2.6 模糊查询

data = Session.query(User).filter(User.name.like('J%')).all()

#输出
[id:2 name:Jerry password:twgdh123, id:3 name:Jack password:twgdh123]

  

2.7 and / or

from sqlalchemy import and_, or_

data = Session.query(User).filter(and_(User.id > 2, User.name.like('J%'))).all()
print(data) #输出
[id:3 name:Jack password:twgdh123]

2.8 in_ 

data = Session.query(User).filter(User.id.in_([1,3])).all()
print(data) data = Session.query(User).filter(User.name.in_(['bigberg', 'Jack'])).all()
print(data)

2.9 排序

data = Session.query(User).order_by(User.name.desc()).all()
print(data)

  

三、修改数据

  • 第一种赋值
# data = Session.query(User).filter(User.name=='Marry').first()
data = Session.query(User).filter_by(name='Marry').first()
data.name = 'Tom'
Session.commit()
  • 第二种update
Session.query(User).filter_by(name='Tom').update({'name': 'Hary'})
Session.commit()
  • 回滚
ession.query(User).filter_by(name='Hary').update({'name': 'John'})
print(Session.query(User).filter_by(name='John').all())
# 回滚
Session.rollback()
print(Session.query(User).filter_by(name='John').all())
Session.commit() #输出
[id:2 name:John password:twgdh123]
[] mysql> select * from user;
+----+---------+----------+
| id | name | passwd |
+----+---------+----------+
| 1 | bigberg | twgdh123 |
| 2 | Hary | twgdh123 |
| 3 | Jack | twgdh123 |
+----+---------+----------+
3 rows in set (0.00 sec) # Hary 确实没有改成 John

  

四、统计

data = Session.query(User).filter(User.name.like('%a%')).count()
print(data) #输出
2

  

五、分组

from sqlalchemy import func

data = Session.query(User.name, func.count(User.name)).group_by(User.name).all()
print(data) # 输出
[('bigberg', 1), ('Hary', 1), ('Jack', 1)]

  

sqlalchemy常用语法的更多相关文章

  1. Markdown通用的常用语法说明

    前言 Markdown 是一种轻量级的 标记语言,语法简洁明了.学习容易,还具有其他很多优点,目前被越来越多的人用来写作使用. Markdown具有一系列衍生版本,用于扩展Markdown的功能(如表 ...

  2. Markdown简介以及常用语法

    Markdown简介以及常用语法 最近发现用markdown记录东西很方便,感觉和emacs的org mode很类似,但是windows下使用emacs不是很方便.特此记录一下markdown常用的语 ...

  3. Sql常用语法以及名词解释

    Sql常用语法以及名词解释 SQL分类: DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT) D ...

  4. Markdown常用语法

    什么是Markdown Markdown 是一种方便记忆.书写的纯文本标记语言,用户可以使用这些标记符号以最小的输入代价生成极富表现力的文档. 通过Markdown简单的语法,就可以使普通文本内容具有 ...

  5. 2 hive的使用 + hive的常用语法

    本博文的主要内容有: .hive的常用语法 .内部表 .外部表 .内部表,被drop掉,会发生什么? .外部表,被drop掉,会发生什么? .内部表和外部表的,保存的路径在哪? .用于创建一些临时表存 ...

  6. sql 常用语法汇总

    Sql常用语法 SQL分类: DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT) DCL—数据控 ...

  7. ES6常用语法

    ECMAScript 6(以下简称ES6)是JavaScript语言的下一代标准.因为当前版本的ES6是在2015年发布的,所以又称ECMAScript 2015. 也就是说,ES6就是ES2015. ...

  8. python MVC、MTV 框架介绍 Django 模板系统常用语法

    Django 框架简介一.MVC框架和MTV框架1.MVC 全名Model View Controller,是软件工程中的一种软件架构模式,把软件系统分为三个基本部分.优势: 耦合性低 重用性高 生命 ...

  9. PHP中Smarty引擎的常用语法

    PHP中Smarty引擎的常用语法 输出今天的日期: {$smarty.now|date_format:"%H:%M %A, %B %e, %Y"} 实际上用到了PHP的time( ...

随机推荐

  1. PSP总结报告1

    回答作业问题 1.回想一下你曾经对计算机专业的畅想 我高考后报考的是计算机科学与技术,当时对计算机技术基本了解为零,当时以为什么东西都会用到计算机,学计算机以后不会找不到工作,刚开学的时候对计算机一窍 ...

  2. Scrum Meeting 6 -2014.11.12

    今天apec最后一天,大部分任务都差不多了,局部测试问题不大.大家修复下小细节就可以开始整合了. Member Today’s task Next task 林豪森 协助测试及服务器部署 协助测试及服 ...

  3. 20145214 《网络对抗技术》 Web基础

    20145214 <网络对抗技术> Web基础 1.实验后回答问题 (1)什么是表单 表单在网页中主要负责数据采集,提供了填写数据.选择数据,收集数据并提交给后台的功能 一个表单有三个基本 ...

  4. "私人助手"NABCD分析

    ---恢复内容开始--- 团队开发项目“私人助手”需求分析NABCD模型: (1)N(Need需求):“私人助手”解决了几类人遇到非常多的事情,非常繁琐,“私人助手”为用户解决这个问题,让用户的工作更 ...

  5. POJ 3597 Polygon Division 多边形剖分

    题目链接: http://poj.org/problem?id=3597 Polygon Division Time Limit: 2000MSMemory Limit: 131072K 问题描述 G ...

  6. 关于Eclipse上使用可视化设计界面(Java EE 使用可视化界面设计)

    Eclipse下可视化界面实现——WindowBulider安装 第一步: WindowBuilder官方下载安装说明地址:http://www.eclipse.org/windowbuilder/d ...

  7. C++操作mysql方法总结(3)

    C++通过mysql++操作mysql的方式   使用vs2013和64位的msql 5.6.16进行操作 项目中使用的数据库名和表数据请参考C++操作mysql方法总结(1)中的介绍   Mysql ...

  8. n位格雷曼实现

    参考: 格雷码的实现 问题:产生n位元的所有格雷码.   格雷码(Gray Code)是一个数列集合,每个数使用二进位来表示,假设使用n位元来表示每个数字,任两个数之间只有一个位元值不同. 例如以下为 ...

  9. 打开ubuntu终端的两个方法【最快速】

    两种快捷方法: 1. ctrl+alt+T. 2. 桌面右击,再点击终端.

  10. java9初探

    最近研究了一下java9的新特性,也看完了<Modularity Programming in Java 9>,有一些收获写博客记录一下. 1.java9初探