• 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()
     
    
    
    
     
    
     
    

      

  • 相关阅读:
    数据库添加字段的默认值
    Map中存放数组
    JSON字符串转换为Map
    java中Object转换成int或String类型方法
    Max_connect_errors – MySQL性能参数详解
    查看已经安装的软件
    eclipse远程调试tomcat
    eclipse控制台不限制显示的行数
    栈和堆(Stack && Heap)
    一道题引发的self和super
  • 原文地址:https://www.cnblogs.com/xzcvblogs/p/11048035.html
Copyright © 2020-2023  润新知