pythonのsqlalchemy简单查询
#!/usr/bin/env python import sqlalchemy from sqlalchemy import create_engine from sqlalchemy.ext.declarative import declarative_base from sqlalchemy import Column,Integer,String from sqlalchemy.orm import sessionmaker # 创建连接 echo=True 就会打印出所有过程信息 engine = create_engine("mysql+pymysql://root:root@localhost/testuser",encoding="utf-8",echo=True) # Base = declarative_base() # 生成orm基类 class User(Base): __tablename__= "user" id = Column(Integer,primary_key=True) name = Column(String(32)) password = Column(String(64)) Base.metadata.create_all(engine) # 创建表结构 Session_class = sessionmaker(bind=engine) # 创建与数据库的会话session class 注意,这里返回的是一个class,不是实例 session = Session_class() # # user_obj = User(name="zhangpeng",password="123") # 生成你要创建的数据对象 # print(user_obj.name,user_obj.id) # 此时还没有创建对象,ID为None # # session.add(user_obj) # print(user_obj.name,user_obj.id) # 此时依然为空 # session.commit() # 统一提交 # filter_by(name="zhangpeng") 条件; all 全部 first 第一个 # filter(User.id>2) ;按照ID查询 # data = session.query(User).filter_by(name="zhangsan").all() # -- 修改 data = session.query(User).filter_by(name="aaa").first() if(data is not None): data.name = "zhangsan" session.commit() # 提交 # -- 修改 # -- 回滚 my_user = session.query(User).filter_by(id=1).first() my_user.name = "Jack" fake_user = User(name="Rain",password="123456") session.add(fake_user) # 这时候看session里有你刚添加的数据 print("....",session.query(User).filter(User.name.in_(["jack","rain"])).all()) session.rollback() # 此时回滚一下,之前数据应该就消失了 print(session.query(User).filter(User.name.in_(["jack","rain"])).all()) # -- 回滚 # 获取所有数据 print(session.query(User.name,User.id).all()) # 多条件查询 objs = session.query(User).filter(User.id>0).filter(User.id<7).all() # 查询出来是一个数组 print(objs[0].name) # 模糊查询,并统计个数 count = session.query(User).filter(User.name.like("%y%")).count() print(count) # 分组查询 from sqlalchemy import func print(session.query(func.count(User.name),User.name).group_by(User.name).all()) # 删除 del_user = session.query(User).filter(User.id==1).first() session.delete(del_user) session.commit()
用心做人,用脑做事!----鹏鹏张