阿里云服务器ECS    
弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新 [咨询更多]
阿里云存储OSS
简单易用、多重冗余、数据备份高可靠、多层次安全防护安全性更强、低成本 [咨询更多]
阿里云数据库RDS
稳定可靠、可弹性伸缩、更拥有容灾、备份、恢复、监控、迁移等方面的全套解决方案 [咨询更多]
阿里云安全产品
DDoS高防IP、web应用防火墙、安骑士、sll证书、态势感知众多阿里云安全产品热销中 [咨询更多]
阿里云折扣优惠    
云服务器ECS、数据库、负载均衡等产品新购、续费、升级联系客服获取更多专属折扣 [咨询更多]
使用 SQLAlchemy Core 处理数据-更新数据
2020-9-15    点击量:
  更新数据
  
  update() 方法和前面用过的 insert() 方法很相似,它们的语法几乎完全一样,但是 update() 可以指定一个 where 子句,用来指出要更新哪些行。与插入语句一样,更新语句可以由 update() 函数或者表格的 update() 方法来创建。如果省略 where 子句,则表示要更新表中的所有行。
  
  例如,假设你已经完成了库存所需的巧克力饼干(chocolate chip cookies)的烘焙工作。在示例 2-23 中,我们先通过更新查询把烘焙好的巧克力饼干添加到当前库存中,再查看当前库存中巧克力饼干的数量。
  
  示例 2-23 更新数据
  
  from sqlalchemy import update
  
  u = update(cookies).where(cookies.c.cookie_name == "chocolate chip")
  
  u = u.values(quantity=(cookies.c.quantity + 120)) ➊
  
  result = connection.execute(u)
  
  print(result.rowcount) ➋
  
  s = select([cookies]).where(cookies.c.cookie_name == "chocolate chip")
  
  result = connection.execute(s).first()
  
  for key in result.keys():
  
  print('{:>20}: {}'.format(key, result[key]))
  
  ❶ 使用生成方法构建语句。
  
  ❷ 打印更新的行数。
  
  结果如下:
  
  1
  
  cookie_id: 1
  
  cookie_name: chocolate chip
  
  cookie_recipe_url: http://some.aweso.me/cookie/recipe.html
  
  cookie_sku: CC01
  
  quantity: 132
  
  unit_cost: 0.50
  
  除了更新数据之外,某些时候,我们还想从表中删除某些数据,接下来就学习删除数据的方法。
联系客服免费领取更多阿里云产品新购、续费升级折扣,叠加官网活动折上折更优惠