您的位置:

MySQLdb的安装及使用详解

一、安装MySQLdb

MySQLdb是Python语言访问MySQL数据库的一个API,可以实现Python与MySQL数据库的交互。在使用MySQLdb之前,需要先安装MySQLdb。下面是安装MySQLdb的详细步骤。

1、安装MySQL

在安装MySQLdb之前,需要先安装MySQL。可以从官网下载对应操作系统的MySQL安装包,然后按照提示完成安装。

#在Ubuntu上安装MySQL
sudo apt-get update
sudo apt-get install mysql-server
sudo mysql_secure_installation #设置管理员密码

2、安装pip

使用pip来安装Python的第三方库。如果已安装pip则跳过这一步。

#在Ubuntu上安装pip
sudo apt-get install python3-pip

3、安装MySQLdb

使用pip使MySQLdb安装在Python library中。

#通过pip安装MySQLdb
sudo pip3 install mysqlclient

二、连接MySQL数据库

在成功安装MySQLdb之后,可以使用Python代码连接到MySQL数据库,以实现后续的操作。

1、连接MySQL数据

使用connect()函数连接到MySQL数据库。

#导入MySQLdb模块
import MySQLdb

#连接MySQL数据库
db = MySQLdb.connect("host", "user", "password", "database")

2、创建游标对象

使用cursor()方法创建游标对象。

#创建游标对象
cursor = db.cursor()

三、执行MySQL语句

连接到MySQL数据库之后,可以使用execute()方法来执行MySQL数据库操作。

1、创建数据库

使用execute()方法创建MySQL数据库。

#创建数据库
cursor.execute("CREATE DATABASE mydatabase")

2、创建表

使用execute()方法创建MySQL表。

#创建表
cursor.execute("CREATE TABLE customers (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), address VARCHAR(255))")

3、插入数据

使用execute()方法插入数据到MySQL表中。

#插入数据
sql = "INSERT INTO customers (name, address) VALUES (%s, %s)"
val = ("John", "Highway 21")
cursor.execute(sql, val)

4、查询数据

使用execute()方法查询MySQL表中的数据。

#查询表中的数据
cursor.execute("SELECT * FROM customers")
result = cursor.fetchall() #获取所有数据
for row in result:
    print(row)

四、提交更改

使用commit()方法将更改提交到数据库中。

#提交更改
db.commit()

五、关闭连接

在完成需要的MySQL操作后,使用close()方法关闭连接。

#关闭连接
db.close()

六、完整示例

下面是一个完整的使用MySQLdb连接MySQL数据库,并执行数据库操作的Python示例代码。

import MySQLdb

#连接MySQL数据库
db = MySQLdb.connect("host", "user", "password", "database")

#创建游标对象
cursor = db.cursor()

#创建数据库
cursor.execute("CREATE DATABASE mydatabase")

#创建表
cursor.execute("CREATE TABLE customers (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), address VARCHAR(255))")

#插入数据
sql = "INSERT INTO customers (name, address) VALUES (%s, %s)"
val = ("John", "Highway 21")
cursor.execute(sql, val)

#查询数据
cursor.execute("SELECT * FROM customers")
result = cursor.fetchall()
for row in result:
    print(row)

#提交更改
db.commit()

#关闭连接
db.close()