Python数据库 4.Python与数据库的交互

1. Python与数据库交互的概念

Python和数据库的交互,一般指的是使用Python语言来操作数据库的API,实现通过Python程序对数据库进行增删改查等操作。Python支持的数据库类型非常丰富,包括MySQL、PostgreSQL、Oracle、SQLite等多种类型,其中最为常用的是MySQL和SQLite,本文章主要介绍Python和MySQL以及Python和SQLite的交互。

2. 使用Python与MySQL交互

2.1 安装pymysql模块

Python和MySQL交互最常用的模块是pymysql,它是Python连接MySQL数据库的模块。在使用pymysql之前,需要先使用pip安装。

pip install pymysql

2.2 连接MySQL数据库

连接MySQL数据库需要首先创建一个连接对象,需要提供MySQL数据库的地址、用户名和密码等信息。使用Python连接MySQL数据库的代码如下:

import pymysql

# 打开数据库连接

db = pymysql.connect("localhost", "root", "root", "test")

其中,localhost代表MySQL数据库所在的IP地址,root代表MySQL数据库的用户名,root代表MySQL数据库的密码,test代表需要连接的MySQL数据库的名称。

2.3 创建游标

连接MySQL数据库成功之后,需要创建一个游标对象。游标对象用于对MySQL数据库进行操作,包括查询数据、更新数据、插入数据等常见操作。

# 使用 cursor() 方法创建一个游标对象 cursor

cursor = db.cursor()

2.4 执行MySQL语句

创建游标对象之后,就可以执行MySQL语句了。执行MySQL语句可以使用游标的execute()方法,该方法需要传入要执行的MySQL语句。

# SQL 查询语句

sql = "SELECT * FROM employee"

# 执行 SQL 查询语句

cursor.execute(sql)

# 获取所有记录列表

results = cursor.fetchall()

for row in results:

name = row[0]

age = row[1]

sex = row[2]

salary = row[3]

# 打印结果

print("name=%s,age=%d,sex=%s,salary=%d"% \

(name, age, sex, salary))

以上代码可以查询MySQL数据库中employee表中的所有记录,并将查询结果打印到控制台。运行结果如下:

name=张三,age=24,sex=男,salary=3000

name=李四,age=26,sex=女,salary=3500

name=王五,age=27,sex=男,salary=3800

2.5 关闭数据库连接

在所有操作完成之后,需要关闭游标和数据库连接,释放资源。

# 关闭游标

cursor.close()

# 关闭数据库连接

db.close()

3. 使用Python与SQLite交互

3.1 安装sqlite3模块

Python内置了sqlite3模块,可以直接使用。不过,在使用sqlite3模块之前,需要安装SQLite数据库。

3.2 连接SQLite数据库

连接SQLite数据库需要首先创建一个连接对象,需要提供SQLite数据库文件的路径。使用Python连接SQLite数据库的代码如下:

import sqlite3

# 打开数据库连接

conn = sqlite3.connect('test.db')

其中,test.db代表需要连接的SQLite数据库文件名。

3.3 创建游标

连接SQLite数据库成功之后,需要创建一个游标对象。游标对象用于对SQLite数据库进行操作,包括查询数据、更新数据、插入数据等常见操作。

# 使用 cursor() 方法创建一个游标对象 cursor

cursor = conn.cursor()

3.4 执行SQLite语句

创建游标对象之后,就可以执行SQLite语句了。执行SQLite语句可以使用游标的execute()方法,该方法需要传入要执行的SQLite语句。

# SQL 查询语句

sql = "SELECT * FROM employee"

# 执行 SQL 查询语句

cursor.execute(sql)

# 获取所有记录列表

results = cursor.fetchall()

for row in results:

name = row[0]

age = row[1]

sex = row[2]

salary = row[3]

# 打印结果

print("name=%s,age=%d,sex=%s,salary=%d"% \

(name, age, sex, salary))

以上代码可以查询SQLite数据库中employee表中的所有记录,并将查询结果打印到控制台。运行结果与使用Python和MySQL交互的示例相同。

3.5 关闭数据库连接

在所有操作完成之后,需要关闭游标和数据库连接,释放资源。

# 关闭游标

cursor.close()

# 关闭数据库连接

conn.close()

4. 总结

本文介绍了Python和MySQL以及Python和SQLite的交互过程。Python和MySQL交互需要安装pymysql模块,连接MySQL数据库可以使用pymysql.connect()方法,执行MySQL语句可以使用游标的execute()方法,关闭连接需要分别关闭游标和数据库连接。Python和SQLite交互不需要安装任何模块,连接SQLite数据库可以使用sqlite3.connect()方法,执行SQLite语句可以使用游标的execute()方法,关闭连接需要分别关闭游标和数据库连接。

后端开发标签