python 数据库处理
Python 数据库处理
数据是一项关键资源,它对于现代社会来说至关重要。对大部分组织而言,数据是生产的基础;能够快速和准确地处理数据是组织是否能够成功运转的关键因素。
数据库处理是管理数据的基础,可以通过提供安全和可扩展的方式来管理数据存储。Python 作为一种流行的编程语言可以创建和管理多种数据库,从轻量级的 SQLite 到功能强大的 Oracle。Python 还提供了一种称为 ORM (对象关系映射) 的抽象层,帮助开发人员更方便地管理数据库。
本文将重点引入 Python 数据库处理的三个主题:
1. 连接数据库
2. 执行查询和写入操作
3. 使用 ORM 对象关系映射
连接数据库
在 Python 中,连接到数据库需要以下步骤:
1. 安装适当的数据库引擎和 SQL 工具包
2. 导入在 Python 中访问数据库所需的模块并连接到数据库
3. 请求查询或写入操作
下面以 MySQL 为例,介绍在 Python 中连接到数据库的步骤。
首先需要根据需要从 MySQL 官方网站下载并安装 MySQL 数据库,并在操作系统上安装相应的 MySQL 连接器。然后,可以使用 PyMySQL 包通过 Python 编程连接到 MySQL。
import pymysql
# 连接到数据库并建立游标
conn = pymysql.connect(
host='localhost',
user='root',
password='password',
db='database_name',
charset='utf8mb4',
cursorclass=pymysql.cursors.DictCursor
)
# 关闭连接
conn.close()
上面的代码中,我们使用 pymysql 模块通过连接字符串建立了一个连接(例如主机、用户名、密码和数据库名)。同时,使用 pymysql.cursors.DictCursor 将结果作为字典返回。
执行查询和写入操作
连接到数据库后,可以执行读取和写入操作。新建一个游标并使用 execute() 方法执行 SQL 命令即可。
读取数据:
# 创建游标并执行 SQL 查询
cursor = conn.cursor()
cursor.execute("SELECT * FROM table_name WHERE column_name='parameter'")
# 得到查询结果
result = cursor.fetchall()
向数据库插入数据:
# 使用游标并执行 SQL 写入命令
cursor = conn.cursor()
insert_sql = "INSERT INTO table_name (column1, column2) VALUES ('value1', 'value2')"
cursor.execute(insert_sql)
# 提交更改
conn.commit()
# 关闭连接
conn.close()
使用 ORM 对象关系映射
ORM 是一种技术,它可以将数据库表映射到类和对象上。使用 ORM 可以降低编写 SQL 命令的复杂度。
Python 提供了多种 ORM 工具包,比较著名的是 SQLAlchemy,提供了一种更方便的方法来管理数据库。通过直接使用 Python 代码来操作 DB,通过 ORM 可以避免一些陌生的 SQL 命令。
使用 SQLAlchemy 的核心是定义模型,这些模型定义描述了数据库中存储的数据结构。例如,下面是在 Python 中定义一个 Users 模型的示例。
from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column, Integer, String, Date
Base = declarative_base()
class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True)
name = Column(String(255), nullable=False)
birthdate = Column(Date, nullable=False)
在上述代码中,使用 SQLAlchemy 定义一个名为 Users 的表。有几个参数需要解释一下:
1. __tablename__ 用于指定数据库中使用的表名。
2. Column() 类表示要在表中创建一个新列的特征。这些特征可以是整数类型、文本类型、日期类型等。
3. primary_key=True 表示该行是主键。
4. nullable=True 表示该行可以为空。
定义了模型之后,就可以使用 SQLAlchemy 将数据写入数据库或从数据库中读取数据。可以使用类似以下的代码查询数据库:
from sqlalchemy.orm import sessionmaker
# 首先需要建立一个数据库引擎,就像前面使用 pymysql 建立一个连接一样
engine = create_engine('mysql+pymysql://root:password@localhost/database_name')
# 然后将引擎连到一个会话中
Session = sessionmaker(bind=engine)
db = Session()
# 查询数据库
users = db.query(User).filter(User.name == 'Tom').all()
# 执行写入操作
user = User(name='Tom', birthdate=datetime.date(2000, 1, 1))
db.add(user)
db.commit()
# 关闭数据库会话
db.close()
总结
在本文中,我们介绍了 Python 数据库处理的三个主题:连接数据库、执行查询和写入操作以及使用 ORM 对象关系映射。Python 具有很好的数据库连接性和 ORM 工具包,可以轻松地管理数据库。使用数据库是一项关键技能,对于所有需要处理数据的行业都非常重要。
