返回

深入剖析Python数据库操作:pymysql的用法

后端

掌控数据之匙:揭秘 Python 中的数据库操作利器——pymysql

初识 pymysql:连接数据库

踏入数据处理的广阔天地,首要任务是连接到 MySQL 数据库。pymysql 以其出色的连接能力,成为 Python 开发者的心头好。

import pymysql

conn = pymysql.connect(
    host='localhost',
    user='root',
    password='123456',
    database='test',
    port=3306
)

cursor = conn.cursor()

开辟新天地:创建数据库和数据表

有了连接,接下来便是创建数据库和数据表,为数据安家。

cursor.execute('CREATE DATABASE IF NOT EXISTS my_database')

cursor.execute("""
    CREATE TABLE IF NOT EXISTS users (
        id INT PRIMARY KEY AUTO_INCREMENT,
        username VARCHAR(255) NOT NULL,
        password VARCHAR(255) NOT NULL
    )
""")

数据填充:插入和更新数据

数据有了容身之所,接下来就需要填充数据,让数据库变得丰满。

cursor.execute('INSERT INTO users (username, password) VALUES (%s, %s)', ('admin', '123456'))

cursor.execute('UPDATE users SET password = %s WHERE username = %s', ('new_password', 'admin'))

知识挖掘:查询数据

从数据库中获取信息是数据处理的关键。SELECT 语句便是实现这一目的的利器。

cursor.execute('SELECT * FROM users')

cursor.execute('SELECT username, password FROM users WHERE id = %s', (1,))

焕然一新:删除数据

数据更新换代是常态,删除冗余或过时数据是保持数据库整洁的必备之术。

cursor.execute('DELETE FROM users WHERE id = %s', (1,))

收尾工作:提交和关闭连接

一切操作完成后,别忘了提交更改并关闭连接,为数据库的健康和安全保驾护航。

conn.commit()

cursor.close()
conn.close()

pymysql 的强大潜力

pymysql 不仅提供了连接、创建、插入、查询和删除等基本操作,更支持存储过程、游标、事务等高级功能。它能够轻松处理海量数据,满足复杂的业务需求。

5 个常见问题解答

  1. 为什么我无法连接到数据库?

    • 检查连接参数是否正确,如主机、用户名、密码和端口号。
    • 确认 MySQL 服务是否正在运行。
  2. 如何创建带主键的数据表?

    • 在 CREATE TABLE 语句中指定 PRIMARY KEY 约束,例如:
      CREATE TABLE users (
          id INT PRIMARY KEY AUTO_INCREMENT,
          ...
      )
      
  3. 如何批量插入数据?

    • 使用 executemany() 方法,一次插入多行数据,例如:
      cursor.executemany('INSERT INTO users (username, password) VALUES (%s, %s)', [('user1', 'pass1'), ('user2', 'pass2')])
      
  4. 如何获取查询结果的元数据?

    • 调用 cursor.description 属性获取字段名和数据类型,例如:
      for row in cursor.description:
          print(row[0], row[1])
      
  5. 如何处理数据库异常?

    • 使用 try-except 块捕获数据库操作引发的异常,并进行相应的错误处理,例如:
      try:
          cursor.execute('...')
      except pymysql.err.ProgrammingError as e:
          print(e)
      

结论

pymysql 是 Python 中操作 MySQL 数据库的利器,它提供了一系列强大的功能,可以轻松高效地完成各种数据处理任务。熟练掌握 pymysql,将助你解锁数据处理的新天地,为你的 Python 项目注入数据处理的强劲动力。