Python 是一种高级编程语言,它可以轻松地与各种数据库进行交互,其中包括 MySQL 数据库。MySQL 是一种开源的关系型数据库管理系统,被广泛应用于各种应用程序和网站的后端。在本文中,我将介绍如何使用 Python 操作 MySQL 数据库,并提供一些代码示例。
安装 MySQL Connector
在开始使用 Python 操作 MySQL 数据库之前,我们需要安装一个 Python MySQL Connector。有很多 Python MySQL Connector 可供选择,其中包括 MySQLdb、PyMySQL 和 mysql-connector-python。在本文中,我将使用 mysql-connector-python。你可以使用以下命令来安装 mysql-connector-python:
pip install mysql-connector-python
连接到 MySQL 数据库
在使用 Python 操作 MySQL 数据库之前,我们需要建立一个连接。在连接到 MySQL 数据库时,我们需要提供以下信息:
- 主机名或 IP 地址
- 用户名
- 密码
- 数据库名称
我们可以使用以下代码来连接到 MySQL 数据库:
import mysql.connector mydb = mysql.connector.connect( host="localhost", user="yourusername", password="yourpassword", database="mydatabase" ) print(mydb)
在上面的代码中,我们使用 mysql.connector
模块来连接到 MySQL 数据库。我们提供了主机名、用户名、密码和数据库名称作为参数。如果连接成功,将打印出连接对象的详细信息。
创建数据库和表
在连接到MySQL 数据库之后,我们可以通过 Python 来创建数据库和表。下面是一些常用的 SQL 命令:
- 创建数据库:
CREATE DATABASE databasename
- 创建表:
CREATE TABLE tablename (column1 datatype, column2 datatype, column3 datatype, ... )
我们可以使用以下代码来创建一个名为 customers
的表:
import mysql.connector mydb = mysql.connector.connect( host="localhost", user="yourusername", password="yourpassword", database="mydatabase" ) mycursor = mydb.cursor() mycursor.execute("CREATE TABLE customers (name VARCHAR(255), address VARCHAR(255))")
在上面的代码中,我们首先连接到 MySQL 数据库,然后创建一个名为 customers
的表。这个表包含两个列:name
和 address
,它们的数据类型分别为 VARCHAR(255)
。
插入数据
在创建表之后,我们可以使用 Python 向表中插入数据。下面是一些常用的 SQL 命令:
- 插入数据:INSERT INTO tablename (column1, column2, column3, ...) VALUES (value1, value2, value3, ...)
我们可以使用以下代码向 customers
表中插入一条记录:
import mysql.connector mydb = mysql.connector.connect( host="localhost", user="yourusername", password="yourpassword", database="mydatabase" ) mycursor = mydb.cursor() sql = "INSERT INTO customers (name, address) VALUES (%s, %s)" val = ("John", "Highway 21") mycursor.execute(sql, val) mydb.commit() print(mycursor.rowcount, "record inserted.")
在上面的代码中,我们首先连接到 MySQL 数据库,然后向 customers 表中插入一条记录。我们使用了占位符 %s 来代替实际的值,然后在执行 SQL 语句之前将值传递给 execute() 方法。
最后,我们调用 commit() 方法来保存更改,然后打印出插入的记录数。
查询数据
在插入数据之后,我们可以使用 Python 查询表中的数据。下面是一些常用的 SQL 命令:
- 查询数据:SELECT column1, column2, column3, ... FROM tablename
- 条件查询:SELECT column1, column2, column3, ... FROM tablename WHERE condition
我们可以使用以下代码查询 customers 表中的所有记录:
import mysql.connector mydb = mysql.connector.connect( host="localhost", user="yourusername", password="yourpassword", database="mydatabase" ) mycursor = mydb.cursor() mycursor.execute("SELECT * FROM customers") myresult = mycursor.fetchall() for x in myresult: print(x)
在上面的代码中,我们首先连接到 MySQL 数据库,然后执行 SELECT * FROM customers
命令查询 customers
表中的所有记录。我们使用 fetchall()
方法获取所有查询结果,然后使用循环打印出每条记录。
更新数据
在查询数据之后,我们可以使用 Python 更新表中的数据。下面是一些常用的 SQL 命令:
- 更新数据:
UPDATE tablename SET column1 = value1, column2 = value2, ... WHERE condition
我们可以使用以下代码将 address
列的值从 Highway 21
更新为 Park Lane
:
import mysql.connector mydb = mysql.connector.connect( host="localhost", user="yourusername", password="yourpassword", database="mydatabase" ) mycursor = mydb.cursor() sql = "UPDATE customers SET address = %s WHERE address = %s" val = ("Park Lane 38", "Highway 21") mycursor.execute(sql, val) mydb.commit() print(mycursor.rowcount, "record(s) affected")
在上面的代码中,我们首先连接到 MySQL 数据库,然后使用 UPDATE 命令将 address 列的值从 Highway 21 更新为 Park Lane 38。我们使用占位符 %s 来代替实际的值,然后在执行 SQL 语句之前将值传递给 execute() 方法。
最后,我们调用 commit() 方法来保存更改,然后打印出受影响的记录数。
删除数据
在更新数据之后,我们可以使用 Python 删除表中的数据。下面是一些常用的 SQL 命令:
- 删除数据:
DELETE FROM tablename WHERE condition
我们可以使用以下代码删除 address
列的值为 Park Lane 38
的记录:
import mysql.connector mydb = mysql.connector.connect( host="localhost", user="yourusername", password="yourpassword", database="mydatabase" ) mycursor = mydb.cursor() sql = "DELETE FROM customers WHERE address = %s" adr = ("Park Lane 38", ) mycursor.execute(sql, adr) mydb.commit() print(mycursor.rowcount, "record(s) deleted")
在上面的代码中,我们首先连接到 MySQL 数据库,然后使用 DELETE FROM 命令删除 address 列的值为 Park Lane 38 的记录。我们使用占位符 %s 来代替实际的值,然后在执行 SQL 语句之前将值传递给 execute() 方法。
最后,我们调用 commit() 方法来保存更改,然后打印出删除的记录数。
完整示例
下面是一个完整的 Python 示例,展示了如何连接到 MySQL 数据库、创建表、插入数据、查询数据、更新数据和删除数据:
import mysql.connector mydb = mysql.connector.connect( host="localhost", user="yourusername", password="yourpassword", database="mydatabase" ) mycursor = mydb.cursor() # 创建表 mycursor.execute("CREATE TABLE customers (name VARCHAR(255), address VARCHAR(255))") # 插入数据 sql = "INSERT INTO customers (name, address) VALUES (%s, %s)" val = ("John", "Highway 21") mycursor.execute(sql, val) mydb.commit() print(mycursor.rowcount, "record inserted.") # 查询数据 mycursor.execute("SELECT * FROM customers") myresult = mycursor.fetchall() for x in myresult: print(x) # 更新数据 sql = "UPDATE customers SET address = %s WHERE address = %s" val = ("Park Lane 38", "Highway 21") mycursor.execute(sql, val) mydb.commit() print(mycursor.rowcount, "record(s) affected") # 删除数据 sql = "DELETE FROM customers WHERE address = %s" adr = ("Park Lane 38", ) mycursor.execute(sql, adr) mydb.commit() print(mycursor.rowcount, "record(s) deleted")
在上面的代码中,我们首先连接到 MySQL 数据库,然后创建一个名为 customers 的表。接下来,我们向 customers 表中插入一条记录,并使用 SELECT 命令查询所有记录。然后,我们使用 UPDATE 命令将 address 列的值从 Highway 21 更新为 Park Lane 38,并使用 DELETE 命令删除 address 列的值为 Park Lane 38 的记录。最后,我们调用 commit() 方法来保存更改,并打印出插入、更新和删除的记录数。
这就是使用 Python 操作 MySQL 数据库的基本方法。使用 Python 和 MySQL,你可以轻松地创建、操作和管理数据库。