sqlalchemy常用语法
2018-06-18 00:43:03来源:未知 阅读 ()
一、新增数据
# 新增一条数据 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)]
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 【Python】语法基础 | 开始使用Python 2019-08-13
- python爬虫常用库 2019-08-13
- python Django基础操作 2019-07-24
- listWdiget控件 2019-07-24
- Python-14-常用模块 2019-07-24
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash