📜  python简单连接mysql(1)

📅  最后修改于: 2023-12-03 15:04:41.630000             🧑  作者: Mango

Python 简单连接 MySQL

Python 作为一种脚本语言,其应用越来越广泛,而数据库则是后端开发不可或缺的一部分。MySQL 是最为流行的关系型数据库之一,本文将介绍如何通过 Python 连接 MySQL 数据库。

安装 MySQL Connector/Python

Python 连接 MySQL 需要使用 Connector/Python,它是 MySQL 官方提供的驱动程序。我们可以通过 pip 命令进行安装:

pip install mysql-connector-python

此外,还需要安装 MySQL Server,具体安装方式可以参考官方文档

连接 MySQL 数据库

连接 MySQL 数据库需要使用 mysql.connector 模块提供的 connect() 方法,它接受一个包含数据库连接信息的字典作为参数,如下所示:

import mysql.connector

config = {
  'user': 'your-user',
  'password': 'your-password',
  'host': 'your-server',
  'database': 'your-database'
}

cnx = mysql.connector.connect(**config)

其中 userpassword 是 MySQL 用户名和密码,host 是 MySQL 服务器地址,database 是需要连接的数据库名称。使用 connect() 方法连接成功后,返回一个 mysql.connector.connection_cext.CMySQLConnection 对象。

执行 SQL 语句

连接成功后,我们可以通过 cursor() 方法获取一个游标对象,用于执行 SQL 语句。例如:

cursor = cnx.cursor()

query = "SELECT * FROM users"
cursor.execute(query)

for (id, name) in cursor:
  print(id, name)

cursor.close()
cnx.close()

以上代码查询 users 表中的所有记录,并输出每条记录的 idname 字段值。

预处理 SQL 语句

MySQL 数据库支持预处理(prepared statement)功能,它可以提高 SQL 语句的执行效率,同时避免 SQL 注入等安全问题。我们可以使用 mysql.connector 模块提供的 prepare()execute() 方法进行预处理,例如:

cursor = cnx.cursor(prepared=True)

stmt = "INSERT INTO users (name) VALUES (%s)"
values = [('Alice',), ('Bob',), ('Charlie',)]

cursor.executemany(stmt, values)
cnx.commit()

cursor.close()
cnx.close()

以上代码向 users 表中插入三条记录,分别为 Alice、Bob 和 Charlie。使用 prepared=True 参数表示启用预处理功能,%s 表示占位符,后面的 values 参数是一个元组列表,表示每个占位符对应的值。

总结

通过本文的介绍,我们学习到了如何通过 Python 连接 MySQL 数据库,并执行 SQL 语句。MySQL Connector/Python 提供了丰富的 API,可以满足各种数据库操作需求。如果你还没有尝试过,赶快动手试试吧!