使用python操作mysql数据库

在Python中操作MySQL数据库,可以使用mysql-connector-python库。以下是一个简单的教程,介绍如何在Python中使用mysql-connector-python进行数据库操作。另外也可以使用pymysql库,两个差别不大,在文末会示例介绍。

图片[1] - 使用python操作mysql数据库 - 正则时光

1. 安装mysql-connector-python

首先,确保你已经安装了mysql-connector-python库。如果没有安装,可以使用以下命令进行安装:

pip install mysql-connector-python

2. 连接到MySQL数据库

使用mysql.connector.connect()方法连接到MySQL数据库。你需要提供数据库的主机地址、用户名、密码和数据库名称。

import mysql.connector

# 连接到MySQL数据库
mydb = mysql.connector.connect(
  host="localhost",  # 数据库主机地址
  user="yourusername",  # 数据库用户名
  password="yourpassword",  # 数据库密码
  database="yourdatabase"  # 数据库名称
)

print(mydb)

3. 创建游标

游标(Cursor)用于执行SQL语句并管理事务。使用mydb.cursor()方法创建游标对象:

mycursor = mydb.cursor()

4. 创建表

使用游标对象执行SQL语句来创建表。例如,创建一个名为users的表:

mycursor.execute("CREATE TABLE IF NOT EXISTS users (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), email VARCHAR(255))")

5. 插入数据

使用mycursor.execute()方法插入数据:

sql = "INSERT INTO users (name, email) VALUES (%s, %s)"
val = ("Alice", "alice@example.com")
mycursor.execute(sql, val)

# 提交更改
mydb.commit()

print(mycursor.rowcount, "记录插入成功。")

6. 查询数据

使用mycursor.execute()方法查询数据,并使用mycursor.fetchall()方法获取所有结果:

mycursor.execute("SELECT * FROM users")

myresult = mycursor.fetchall()

for x in myresult:
  print(x)

7. 更新数据

使用mycursor.execute()方法更新数据:

sql = "UPDATE users SET email = %s WHERE name = %s"
val = ("alice_new@example.com", "Alice")
mycursor.execute(sql, val)

# 提交更改
mydb.commit()

print(mycursor.rowcount, "记录更新成功。")

8. 删除数据

使用mycursor.execute()方法删除数据:

sql = "DELETE FROM users WHERE name = %s"
val = ("Alice",)
mycursor.execute(sql, val)

# 提交更改
mydb.commit()

print(mycursor.rowcount, "记录删除成功。")

9. 关闭连接

完成所有操作后,使用mydb.close()方法关闭数据库连接:

mycursor.close()  # 关闭游标
mydb.close()     # 关闭连接

mysql-connector-python和PyMySQL区别

mysql-connector-python是由MySQL官方提供的,性能更好,一些新特性支持更好。PyMySQL是一个纯Python实现的库,因此它不需要任何C编译器或额外的依赖。

Pymsql用法示例

import pymysql

# 连接到MySQL数据库
connection = pymysql.connect(
    host='localhost',
    user='yourusername',
    password='yourpassword',
    db='yourdatabase',
    charset='utf8mb4',
    cursorclass=pymysql.cursors.DictCursor
)

try:
    with connection.cursor() as cursor:
        # 创建表
        cursor.execute("CREATE TABLE IF NOT EXISTS users (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), email VARCHAR(255))")

        # 插入数据
        sql = "INSERT INTO users (name, email) VALUES (%s, %s)"
        cursor.execute(sql, ('Alice', 'alice@example.com'))

        # 提交更改
        connection.commit()

        # 查询数据
        cursor.execute("SELECT * FROM users")
        result = cursor.fetchall()
        print(result)

finally:
    # 关闭连接
    cursor.close()
    connection.close()
© 版权声明
THE END
喜欢就支持一下吧
点赞8 分享