Python 数据库编程:如何用 MySQL 实现数据存储与读取?
MySQL 是一种开源的关系型数据库管理系统,它被广泛地应用于 Web 应用程序中。Python 作为广泛使用的编程语言之一,配合 MySQL 可以实现多种类型的应用程序。在本文中,我们将介绍如何使用 Python 和 MySQL 实现数据存储和读取的方法。
1. 安装 MySQL
在开始使用 Python 和 MySQL 进行编程之前,需要先在本地计算机上安装 MySQL 数据库。可以从 MySQL 的官方网站(https://www.mysql.com/downloads/)上下载适合自己的版本进行安装。安装完成后,需要设置一个数据库管理员用户以及一个数据库。
2. 安装 Python 中的 MySQL 模块
使用 Python 进行操作 MySQL 数据库需要使用 PyMySQL 模块,可以通过 pip 进行安装。在命令行中输入以下命令进行安装:
```
pip install PyMySQL
```
安装完成后,就可以在 Python 代码中使用 PyMySQL 模块了。
3. 数据库连接
在 Python 中连接 MySQL 数据库很简单,只需要使用 PyMySQL 模块中的 connect() 方法即可。示例代码如下:
```python
import pymysql
# 打开数据库连接
db = pymysql.connect("localhost", "root", "root", "database_name")
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
# 关闭数据库连接
db.close()
```
其中,“localhost” 是数据库服务器的地址,“root” 是数据库管理员用户名,“root” 是管理员密码,“database_name” 是要连接的数据库名称。
4. 创建表格
在 MySQL 中创建表格可以使用 CREATE TABLE 语句。在 Python 中,可以在执行 CREATE TABLE 语句之前先使用 cursor() 方法创建一个游标对象 cursor,并使用 execute() 方法执行 SQL 语句。示例代码如下:
```python
import pymysql
# 打开数据库连接
db = pymysql.connect("localhost", "root", "root", "mytestdb")
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
# 使用 execute() 方法执行 SQL,如果表格已经存在则删除
cursor.execute("DROP TABLE IF EXISTS test_table")
# 使用 execute() 方法执行 SQL,创建表格
create_table_sql = """CREATE TABLE test_table (
id INT(11) NOT NULL AUTO_INCREMENT,
name VARCHAR(100) NOT NULL,
age INT(11) NOT NULL,
PRIMARY KEY (id))"""
cursor.execute(create_table_sql)
# 关闭数据库连接
db.close()
```
这段代码会在 MySQL 数据库中创建一个名为“test_table”的表格,表格包含三个列:id、name 和 age。
5. 插入数据
在 Python 中向 MySQL 数据库插入数据也很简单,只需要使用 INSERT INTO 语句。在 Python 中,可以使用 execute() 方法执行 SQL 语句,向表格中插入数据。示例代码如下:
```python
import pymysql
# 打开数据库连接
db = pymysql.connect("localhost", "root", "root", "mytestdb")
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
# SQL 插入语句
insert_sql = """INSERT INTO test_table (name, age)
VALUES ('Tom', 18)"""
try:
# 执行 SQL 语句
cursor.execute(insert_sql)
# 提交到数据库执行
db.commit()
except:
# 发生错误时回滚
db.rollback()
# 关闭数据库连接
db.close()
```
以上代码将在“test_table”中插入一条数据,数据包含 name 和 age 两个字段,分别为“Tom”和 18。
6. 查询数据
在 Python 中从 MySQL 数据库中查询数据也非常简单,只需要使用 SELECT 语句。使用 PyMySQL 模块提供的 fetchone() 方法可以获取一条数据记录,使用 fetchall() 方法可以获取所有数据记录。示例代码如下:
```python
import pymysql
# 打开数据库连接
db = pymysql.connect("localhost", "root", "root", "mytestdb")
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
# SQL 查询语句
select_sql = "SELECT * FROM test_table WHERE age > %s"
try:
# 执行 SQL 语句
cursor.execute(select_sql, (15,))
# 获取所有记录列表
results = cursor.fetchall()
for row in results:
id = row[0]
name = row[1]
age = row[2]
print("id=%s,name=%s,age=%d" % (id, name, age))
except:
print("Error: unable to fetch data")
# 关闭数据库连接
db.close()
```
以上代码将从“test_table”中查询年龄大于 15 的所有数据记录,并将每一条记录的 id、name 和 age 打印出来。
到这里,我们已经介绍了 Python 数据库编程中使用 MySQL 实现数据存储和读取的方法。如果你对此感兴趣,可以继续深入学习。