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

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

SQLAlchemy快速入门指南

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

安装

首先,通过pip安装SQLAlchemy:

pip install SQLAlchemy

连接数据库

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

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

示例代码:

from sqlalchemy import create_engineengine = 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, MetaDataengine = 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/

你可能感兴趣的文章
Objective-C实现程序自动更新(附完整源码)
查看>>
Objective-C实现米到英尺的转换算法(附完整源码)
查看>>
Objective-C实现粒子群算法(附完整源码)
查看>>
Objective-C实现精准计时(附完整源码)
查看>>
Objective-C实现系统时间戳(附完整源码)
查看>>
Objective-C实现约瑟夫环算法(附完整源码)
查看>>
Objective-C实现给定一个句子,返回出现次数最多的单词算法(附完整源码)
查看>>
Objective-C实现给定一个数字数组,返回最大乘积数组中的 3 个数字算法(附完整源码)
查看>>
Objective-C实现给定一串字符,返回出现频率最高的字符算法(附完整源码)
查看>>
Objective-C实现维吉尼亚密码加解密算法(附完整源码)
查看>>
Objective-C实现维吉尼亚密码加解密算法(附完整源码)
查看>>
Objective-C实现缓冲区(附完整源码)
查看>>
Objective-C实现缺陷的检测和识别加上自动矩形框(附完整源码)
查看>>
Objective-C实现罗马数字转十进制算法(附完整源码)
查看>>
Objective-C实现置换密码加解密算法(附完整源码)
查看>>
Objective-C实现置换密码加解密算法(附完整源码)
查看>>
Objective-C实现翻转图像augmentation算法(附完整源码)
查看>>
Objective-C实现老鼠迷宫算法(附完整源码)
查看>>
Objective-C实现聚类基本K均值算法(附完整源码)
查看>>
Objective-C实现自旋锁(附完整源码)
查看>>