您的位置:

Python实现MySQL数据库连接和操作指南

一、环境搭建

在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()方法提交操作结果。