SQLAlchemy core 是SQLAlchemy的核心部件,主要负责生成sql查询和具体的数据库操作,SQLAlchemy orm 就是构建在core之上的。
在不需要对象映射的时候,使用core而不是orm,可以降低数据库操作成本,提高性能。
Table映射
创建数据库连接
1 | from sqlalchemy import create_engine |
表结构定义
1 | from sqlalchemy import Table, Column, Integer, String, MetaData, ForeignKey, Index |
映射已存在的数据表
1 | # 单个表 |
创建表
1 | from sqlalchemy import MetaData |
增删查改
插入
1 | ## 获得连接对象 |
查询
基本查询示例,复杂过滤条件查看文档
1 | # select * from users |
更改
1 | from sqlalchemy.sql import update, select, delete, insert |
删除
1 | 1) stmt = users.delete().where(users.c.id == |
其他特性
监听DBAPI事件
监听connect事件,在初始化数据库连接时设置数据库参数变量,或者执行语句
参考文档1
2
3
4
5
6
7
8
9
10
11from sqlalchemy import event
engine = create_engine(
"postgresql://user:pass@hostname/dbname"
)
def connect(dbapi_connection, connection_record):
cursor = dbapi_connection.cursor()
cursor.execute("SET some session variables")
cursor.close()