一、环境搭建
在Python中连接MySQL数据库,需要引入pymysql模块,使用pip进行安装。
pip install pymysql
在引入pymysql模块后,通过连接MySQL数据库来进行操作,需要先在MySQL Server中创建一个数据库,并且创建一个用户,然后给该用户赋予该数据库的权限。
创建数据库可以通过以下sql语句实现:
CREATE DATABASE database_name;
创建用户并赋予权限可以使用以下sql语句:
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'localhost';
FLUSH PRIVILEGES;
其中,'username'和'password'为自定义的用户名和密码,'database_name'为创建的数据库名称。
二、连接MySQL数据库
连接MySQL数据库,需要使用pymysql中的connect()方法。
import pymysql
# 打开数据库连接
db = pymysql.connect("localhost", "username", "password", "database_name")
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
# 使用 execute() 方法执行 SQL 查询
cursor.execute("SELECT VERSION()")
# 使用 fetchone() 方法获取单条数据.
data = cursor.fetchone()
print("Database version : %s " % data)
# 关闭数据库连接
db.close()
以上代码连接到localhost主机上的MySQL Server,并使用创建的用户名和密码进行连接,其中'database_name'为创建的数据库名称。通过cursor对象执行了一条SQL查询,并使用fetchone()方法获取查询结果。
三、执行SQL语句
在MySQL数据库中,常用的SQL语句有SELECT、INSERT、UPDATE、DELETE等。Python中执行SQL语句需要使用游标对象cursor的execute()方法。
1. SELECT查询语句
SELECT语句用于查询数据库中的数据。
import pymysql
# 打开数据库连接
db = pymysql.connect("localhost", "username", "password", "database_name")
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
# 使用 execute() 方法执行 SQL 查询
cursor.execute("SELECT * FROM table_name")
# 使用 fetchall() 方法获取所有结果
results = cursor.fetchall()
# 遍历结果
for row in results:
col1 = row[0]
col2 = row[1]
col3 = row[2]
# 输出结果
print("col1=%s,col2=%s,col3=%s" % (col1, col2, col3))
# 关闭数据库连接
db.close()
以上代码查询了'table_name'表中的所有数据,并将结果遍历输出。
2. INSERT插入语句
INSERT语句用于向数据库中插入数据。
import pymysql
# 打开数据库连接
db = pymysql.connect("localhost", "username", "password", "database_name")
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
# SQL 插入语句
sql = "INSERT INTO table_name(col1, col2, col3) VALUES('%s', '%s', '%s')" % \
('value1', 'value2', 'value3')
try:
# 执行SQL语句
cursor.execute(sql)
# 提交到数据库执行
db.commit()
except:
# 如果发生错误则回滚
db.rollback()
# 关闭数据库连接
db.close()
以上代码向'table_name'表中插入了一条数据。
3. UPDATE更新语句
UPDATE语句用于更新数据库中的数据。
import pymysql
# 打开数据库连接
db = pymysql.connect("localhost", "username", "password", "database_name")
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
# SQL 更新语句
sql = "UPDATE table_name SET col1='%s' WHERE col2='%s'" % \
('new_value', 'old_value')
try:
# 执行SQL语句
cursor.execute(sql)
# 提交到数据库执行
db.commit()
except:
# 如果发生错误则回滚
db.rollback()
# 关闭数据库连接
db.close()
以上代码将'table_name'表中col2='old_value'的记录的col1字段的值更新为'new_value'。
4. DELETE删除语句
DELETE语句用于从数据库中删除数据。
import pymysql
# 打开数据库连接
db = pymysql.connect("localhost", "username", "password", "database_name")
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
# SQL 删除语句
sql = "DELETE FROM table_name WHERE col2='%s'" % ('value')
try:
# 执行SQL语句
cursor.execute(sql)
# 提交到数据库执行
db.commit()
except:
# 如果发生错误则回滚
db.rollback()
# 关闭数据库连接
db.close()
以上代码从'table_name'表中删除col2='value'的记录。
四、总结
以上就是Python实现MySQL数据库连接和操作的指南。连接MySQL数据库并操作数据需要引入pymysql模块,通过connect()方法创建数据库连接,通过cursor()方法创建游标对象,使用execute()方法执行SQL语句,使用fetchone()或fetchall()方法获取查询结果。在执行INSERT、UPDATE、DELETE等操作时,需要使用commit()方法提交操作结果。