sqlalchemy常用语法
一、新增数据
# 新增一条数据
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常用语法的更多相关文章
- Markdown通用的常用语法说明
前言 Markdown 是一种轻量级的 标记语言,语法简洁明了.学习容易,还具有其他很多优点,目前被越来越多的人用来写作使用. Markdown具有一系列衍生版本,用于扩展Markdown的功能(如表 ...
- Markdown简介以及常用语法
Markdown简介以及常用语法 最近发现用markdown记录东西很方便,感觉和emacs的org mode很类似,但是windows下使用emacs不是很方便.特此记录一下markdown常用的语 ...
- Sql常用语法以及名词解释
Sql常用语法以及名词解释 SQL分类: DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT) D ...
- Markdown常用语法
什么是Markdown Markdown 是一种方便记忆.书写的纯文本标记语言,用户可以使用这些标记符号以最小的输入代价生成极富表现力的文档. 通过Markdown简单的语法,就可以使普通文本内容具有 ...
- 2 hive的使用 + hive的常用语法
本博文的主要内容有: .hive的常用语法 .内部表 .外部表 .内部表,被drop掉,会发生什么? .外部表,被drop掉,会发生什么? .内部表和外部表的,保存的路径在哪? .用于创建一些临时表存 ...
- sql 常用语法汇总
Sql常用语法 SQL分类: DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT) DCL—数据控 ...
- ES6常用语法
ECMAScript 6(以下简称ES6)是JavaScript语言的下一代标准.因为当前版本的ES6是在2015年发布的,所以又称ECMAScript 2015. 也就是说,ES6就是ES2015. ...
- python MVC、MTV 框架介绍 Django 模板系统常用语法
Django 框架简介一.MVC框架和MTV框架1.MVC 全名Model View Controller,是软件工程中的一种软件架构模式,把软件系统分为三个基本部分.优势: 耦合性低 重用性高 生命 ...
- PHP中Smarty引擎的常用语法
PHP中Smarty引擎的常用语法 输出今天的日期: {$smarty.now|date_format:"%H:%M %A, %B %e, %Y"} 实际上用到了PHP的time( ...
随机推荐
- (转)一个简单的rest_framework demo
转发:https://www.cnblogs.com/fu-yong/p/9100559.html models.py 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 from ...
- oracle查看用户表
select table_name from user_tables;
- hive的udf创建永久函数
上传jar包到hdfs目录中, hdfs dfs -put /home/user/hive-functions.jar /user/hive/jars/hive-functions.jar cre ...
- bootstrap中的data-toggle模态框相关
一,点击即打开1,点击按钮 <a href="javascript:void(0)" class="btn btn-primary" data-toggl ...
- Daily Srum 10.30
Android那一组打算用SQL Server这个关系型数据库,而王鹿鸣他们一组却是依赖于Hbase,这是一件很麻烦的事,所以我打算在这两方面都建立一个数据库.虽然挺麻烦,但是还是为了扩展性所做的必要 ...
- “北航Clubs”项目汇报
一.项目展示 二.用户的痛点与需求 1.北航学生,在百团大战之后,很难再有渠道加入社团,了解社团活动,简直如蒙在鼓里! 2.当你周末想参加一些活动,充实一下枯燥的求学生活时,却发现不知道有哪些社团有活 ...
- RocEDU.阅读.写作选择书目
很高兴加入这样一个专门于读书.写作的群. 一.选择图书 通识类: <你的灯亮着吗> 作者: 高斯 (Donald C. Gause) / 温伯格 (Gerald M.Weinberg) 出 ...
- pycharm 2017注册码
1.在浏览器的地址栏输入:http://idea.lanyus.com/,该网址,无需修改用户名,点击获取注册码.复制该注册码,粘贴在注册界面的Activation code的输入框中,点击 ok 该 ...
- java常见字符集
ASCII 名称由来 ASCII(American Standard Code for Information Interchange,美国信息互换标准编码)是基于罗马字母表的一套电脑编码系统.[1] ...
- GC 年轻代 老年代 持久代
转载自:http://www.cnblogs.com/yaoyuan23/p/5587548.html 虚拟机中的共划分为三个代:年轻代(Young Generation).老年代(Old Gener ...