python实现sqlalchemy的使用

文章目录

  • 使用概述
    • 一、创建引擎和会话
    • 二、定义类来表示虚拟表格
    • 三、增删改查
  • 一、创建引擎和会话
  • 二、定义类来表示虚拟表格
      • 1. 直接建立一个可调用的表格
      • 2. 创建多个相同列属性的表格
      • 先建立一个表格的父类,指定列的属性,再通过继承父类
  • 三、增删改查
    • 增加数据
    • 删除数据
    • 更改数据
    • 查找数据
  • 四、进阶技能
    • 1. 将DataFrame格式的数据导入数据库

orm语句和SQL语句的区别

sqlAlchemy解读: https://zhuanlan.zhihu.com/p/265224273

sqlAlchemy解读:https://www.cnblogs.com/ybjourney/p/11832045.html

特点是操纵Python对象而不是SQL查询,也就是在代码层面考虑的是对象,而不是SQL,体现的是一种程序化思维,这样使得Python程序更加简洁易懂。

具体的实现方式是将数据库表转换为Python类,其中数据列作为属性,数据库操作作为方法。

  1. abstract # 辅助sqlAlchemy实现类的继承,自动继承属性,省去super()

  2. SQLAlchemy定义的ORM,在继承父级ORM时候,Foreign Key外键是不能继承的,它强制要求在子类中重新定义。

使用概述

一、创建引擎和会话

二、定义类来表示虚拟表格

在使用sqlalchemy访问数据库的时候,以类的形式表示表格,因此在使用之前,需要先定义类。

类的定义有三种:基类BASE、父类、子类

基类是sqlalchemy底层的;当需要一份数据切分为多个子表的时候,或多个表的字段一致时,可以使用一个父类定义字段的类型,多个子表继承父类的属性。

三、增删改查

一、创建引擎和会话

通过创建引擎、绑定引擎来创建会话,实现数据库的访问。

from sqlalchemy import create_engine                          # 引擎
from sqlalchemy.orm import sessionmaker                       # 创建orm的会话池,orm和sql均可以管理对象关系型数据库,需要绑定引擎才可以使用会话,

# 创建连接
engine = create_engine("mysql+pymysql://root:1234;@127.0.0.1/test", # 需要安装mysql和pymysql的模块,用户名:密码@ip地址/某个数据库
                       #echo=True,         # 打印操作对应的SQL语句
                       pool_size=8,       # 连接个数
                       pool_recycle=60*30 # 不使用时断开
                       )

# 创建session
DbSession = sessionmaker(bind=engine)  # 会话工厂,与引擎绑定。
session = DbSession()                  # 实例化

session.close()  # 关闭会话

二、定义类来表示虚拟表格

在使用sqlalchemy访问数据库的时候,以类的形式表示表格,因此在使用之前,需要先定义类。使用类的名称而不是tablename实现之后的增删改查。

# 导入定义类需要的模块
from sqlalchemy.ext.declarative import declarative_base       # 调用sqlalchemy的基类
from sqlalchemy import Column, Index, distinct, update        # 指定字段属性,索引、唯一、DML
from sqlalchemy

你可能感兴趣的:(Linux&Mysql,python,数据库,mysql,sql)