博客
关于我
SQLAlchemy之SQL Expression
阅读量:400 次
发布时间:2019-03-05

本文共 2408 字,大约阅读时间需要 8 分钟。

SQLAlchemy快速入门指南

SQLAlchemy是Python中一款强大的数据库工具箱,提供了完整的ORM(对象关系映射)和SQL Expression Language(SQL-like API)等功能,极大地简化了与数据库交互的过程。

安装

首先,通过pip安装SQLAlchemy:

pip install SQLAlchemy

连接数据库

使用create_engine函数创建数据库引擎。引擎连接字符串的格式如下:

数据库类型://用户名:密码@数据库主机地址:数据库名?编码

示例代码:

from sqlalchemy import create_engine
engine = create_engine("mysql://root:password@localhost:3306/test?charset=utf8", echo=True)

echo=True参数会让SQL语句在终端显示,默认情况下该参数值为False

一旦有了引擎,可以执行SQL语句:

engine.execute("SELECT * FROM user")

对于事务性操作,建议使用connect方法:

conn = engine.connect()
result = conn.execute("SELECT * FROM user")

创建表

使用Table类和MetaData创建表结构:

from sqlalchemy import Table, Column, Integer, String, MetaData
engine = create_engine("mysql://root:password@localhost:3306/test?charset=utf8", encoding="utf-8", echo=True)
metadata = MetaData()
user_table = Table('user', metadata,
Column('user_id', Integer, primary_key=True),
Column('name', String(20)),
Column('fullname', String(40))
)
# 创建表并提交事务
metadata.create_all(engine)

插入数据

使用连接对象执行插入操作:

conn = engine.connect()
# 创建一个插入操作对象
insert_user = user_table.insert()
# 提供要插入的数据
data = {'name': 'yichya', 'fullname': 'Yichya'}
# 执行插入操作
result = conn.execute(insert_user, **data)

查询数据

基本查询

conn = engine.connect()
# 查询所有用户
select_all = user_table.select()
result = conn.execute(select_all)
# 查看结果
print(result.fetchall()) # 输出所有记录

条件查询

conn = engine.connect()
# 查询用户姓名为'yy'的记录
select_where = user_table.select().where(user_table.c.name == 'yy')
result = conn.execute(select_where)
print(result.fetchall()) # 输出符合条件的记录

多字段查询

conn = engine.connect()
# 查询用户姓名和全名
select_fields = user_table.select([user_table.c.name, user_table.c.fullname])
result = conn.execute(select_fields)
print(result.fetchall()) # 输出结果

多表查询

conn = engine.connect()
# 查询用户信息及对应地址信息
join_query = (
user_table.join(
address_table,
user_table.c.user_id == address_table.c.user_id
)
.select([user_table.c.name, address_table.c.email])
)
result = conn.execute(join_query)
print(result.fetchall()) # 输出结果

更新数据

conn = engine.connect()
# 更新用户姓名为'yichya'的记录为'aa'
update_query = user_table.update().where(user_table.c.name == 'yichya').values(name='aa')
result = conn.execute(update_query)

删除数据

conn = engine.connect()
# 删除用户姓名为'yichya'的记录
delete_query = user_table.delete().where(user_table.c.name == 'yichya')
result = conn.execute(delete_query)

通过以上步骤,可以轻松完成与数据库的各种操作。SQLAlchemy提供了强大的ORM工具,使得与数据库的交互更加简便。

转载地址:http://foqzz.baihongyu.com/

你可能感兴趣的文章
nginx-vts + prometheus 监控nginx
查看>>
Nginx下配置codeigniter框架方法
查看>>
Nginx之二:nginx.conf简单配置(参数详解)
查看>>
Nginx代理websocket配置(解决websocket异常断开连接tcp连接不断问题)
查看>>
Nginx代理初探
查看>>
nginx代理地图服务--离线部署地图服务(地图数据篇.4)
查看>>
Nginx代理外网映射
查看>>
Nginx代理模式下 log-format 获取客户端真实IP
查看>>
Nginx代理静态资源(gis瓦片图片)实现非固定ip的url适配网络环境映射ip下的资源请求解决方案
查看>>
Nginx代理静态资源(gis瓦片图片)实现非固定ip的url适配网络环境映射ip下的资源请求解决方案
查看>>
Nginx反向代理与正向代理配置
查看>>
Nginx反向代理是什么意思?如何配置Nginx反向代理?
查看>>
nginx反向代理解决跨域问题,使本地调试更方便
查看>>
nginx启动脚本
查看>>
Nginx在Windows下载安装启动与配置前后端请求代理
查看>>
Nginx多域名,多证书,多服务配置,实用版
查看>>
nginx开机启动脚本
查看>>
nginx异常:the “ssl“ parameter requires ngx_http_ssl_module in /usr/local/nginx/conf
查看>>
nginx总结及使用Docker创建nginx教程
查看>>
nginx报错:the “ssl“ parameter requires ngx_http_ssl_module in /usr/local/nginx/conf/nginx.conf:128
查看>>