• mysql学习总结(四)


    1.SQLAIchemy介绍
                   SQLAlchemy是python编程下的一款ORM框架,该框架是建立在数据库API文档上,使用关系对象映射进行数据库操作,简言之便:将对象转换成sql,然后使用API并获取执行结果
    
    2.SQLAIchemy安装
              pip install SQLAlchemy
    
    3.常用SQLAIchemy函数(python)
    #创建数据链接
    MySQL-Python
        mysql+mysqldb://<user>:<password>@<host>[:<port>]/<dbname>
    #生成器,所有类都要继承它才能生成数据库语句
    
    
    engine=create_engine("mysql+pymysql://root:xzc123456@127.0.0.1:3306/db1?charset=utf8",max_overflow=5,echo=True)
    
    Base = declarative_base()
    
    #创建一对一关系数据表
    class Favor(Base):
          #创建数据库名
          __tablename__='users
           #创建主键
          id=Column(Integer,primary _key)
          Favor=Column(String(32),default='red',nuique=True)
    class person(Base): 
          __tablename__='person'
          nid=Column(Integer,primary_key=True)
          name=Column(String(32),indef=True,nullable=True)
          favor_id=Column(Integer,Foreignkey('users.id'))  
    
    #创建多对多
    class server(Base):
         __tablename__='server'
        id=Column(Integer,primary_key=True,autoincrement=True)
        hostname=Column(String(32),unique=True,nullable=False)
    
    class Group(Base):
         __tablename__=group
         id=Column(Integer,primary_key=True)
         name=COlumn(String(32),unique=True,nullable=False)
        #设置默认值为22
         port=Column(Integer,defalut=22)
    
    class serverToGrup(Base):
        __tablename__='servertogroup'
        id=Column(Integer,primary_key=True,autoiuncrement=True)
         #外键关联
        server_id=Column(Interger,Foreignkey('server.id'))
        group_id=Column(Interger,Foreignkey('group.id'))
        group=relationship('Group',backref='s2g')
        server=relationship('Server',backref='s2g')
    
    
    #创建表
    Base.metadata.create_all(engine)
    
    #删除表
    Base.metadata.drop_all(engine)
    
    
    #操作表
    Sessionmaker(bind=engine)
    session=Session()
    #增加一条数据
    obj=server(name='alex')
    session.add(obj)
    #增加多条数据
    session.add_all([
    server(name='alex')
    server(name='alex1')
    server(name='alex2')
    server(name='alex3')
    ])
    
    session.commit()
    
    
    #删除数据
    session.query(server).filter(server.id==1).delete()
    session.commit()
    
    
    #修改数据
    session.query(server).filter(server.id==2).update({"name":"axl"})
    seesion.commit()
    
    
    #查询数据
    ret=session.query(server).all()
    session.commit()
    
    
    
    #分页查询limit
    ret=session(server)[1:2]
    
    
    
    #排序
    session.query(server).order_by(server.name.desc()).all()
    session.query(server).order_by(server.name.desc(),server.id.asc()).all()
    
    
    
    
    #分组
    from sqlalchemy.sql import func
    ret=sseion.query(server).group_by(server.hostname).all()
    ret=session.query(func.max(server.id),func.min(server.id)).group_by(server.name).having(func,min(server.id)>2).all()
    
    
    
    #连表
    res=session.query(server,Group).filter(server.id==Group.id).all()
    ret=session.query(serverToGrup).join(server).all()
    ret=session.query(serverToGrup).join(server,isouter=True).all()
     
    
    
    
     
    
     
    

      

  • 相关阅读:
    LaTeX —— 特殊符号与数学字体
    LaTeX —— 特殊符号与数学字体
    实战caffe多标签分类——汽车品牌与车辆外观(C++接口)[详细实现+数据集]
    家书与家训
    家书与家训
    Handler总结
    (step5.1.3)hdu 1213( How Many Tables——1213)
    JavaScript+XML+VBA导出报表初步构想
    XML学习总结
    JSP 9 大内置对象详解
  • 原文地址:https://www.cnblogs.com/xzcvblogs/p/11048035.html
Copyright © 2020-2023  润新知