匠心精神 - 良心品质腾讯认可的专业机构-IT人的高薪实战学院

咨询电话:4000806560

用Python操作MySQL数据库:pymysql库教程

用Python操作MySQL数据库:pymysql库教程

MySQL是一种流行的关系型数据库管理系统,它可以存储结构化数据,并允许用户使用SQL语言进行操作。在Python中,我们可以使用pymysql库来连接和操作MySQL数据库。本文将介绍如何使用pymysql库来进行MySQL数据库的基本操作。

安装pymysql库
在使用pymysql库之前,我们需要先安装它。可以通过pip命令来安装:

pip install pymysql

连接MySQL数据库
在Python中,我们可以使用pymysql库的connect方法来连接MySQL数据库。下面是连接MySQL数据库的代码示例:

import pymysql

# 打开数据库连接
db = pymysql.connect("localhost", "username", "password", "database")

# 关闭数据库连接
db.close()

在上面的代码示例中,我们需要传入4个参数来连接MySQL数据库。分别是:MySQL服务器的主机名(localhost),用户名(username),密码(password)和要连接的数据库名(database)

如果一切顺利,当我们运行上面的代码示例时,就会成功连接MySQL数据库。

创建数据库表
在MySQL数据库中,我们可以使用CREATE TABLE语句来创建一个表。下面是创建一个名为“students”的表的代码示例:

import pymysql

# 打开数据库连接
db = pymysql.connect("localhost", "username", "password", "database")

# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()

# 使用 execute() 方法执行 SQL,如果表存在则删除
cursor.execute("DROP TABLE IF EXISTS students")

# 使用 execute() 方法执行 SQL,创建数据表 students
sql = """CREATE TABLE students (
         ID  INT NOT NULL AUTO_INCREMENT,
         NAME  VARCHAR(20) NOT NULL,
         AGE INT NOT NULL,
         SEX CHAR(1),
         PRIMARY KEY (ID))"""

cursor.execute(sql)

# 关闭数据库连接
db.close()

在上面的代码示例中,我们首先使用cursor()方法创建了一个游标对象,然后使用execute()方法执行了一个DROP TABLE语句,以保证students表不存在。接着,我们定义了一个SQL语句,使用execute()方法执行了一个CREATE TABLE语句,创建了一个名为“students”的数据表。

向数据库表中插入数据
在MySQL数据库中,我们可以使用INSERT语句向表中插入数据。下面是向“students”表中插入数据的代码示例:

import pymysql

# 打开数据库连接
db = pymysql.connect("localhost", "username", "password", "database")

# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()

# SQL 插入语句
sql = "INSERT INTO students(NAME, AGE, SEX) \
       VALUES ('Tom', 20, 'M')"

try:
    # 执行sql语句
    cursor.execute(sql)
    # 提交到数据库执行
    db.commit()
except:
    # 如果发生错误则回滚
    db.rollback()

# 关闭数据库连接
db.close()

在上面的代码示例中,我们首先定义了一个SQL语句,使用execute()方法执行了一个INSERT语句,向“students”表中插入了一条记录。然后使用commit()方法提交到数据库中,如果在执行INSERT语句时出错,则使用rollback()方法回滚事务。

查询数据库表中的数据
在MySQL数据库中,我们可以使用SELECT语句来查询表中的数据。下面是查询“students”表中所有数据的代码示例:

import pymysql

# 打开数据库连接
db = pymysql.connect("localhost", "username", "password", "database")

# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()

# SQL 查询语句
sql = "SELECT * FROM students \
       WHERE AGE > '%d'" % (18)

try:
    # 执行SQL语句
    cursor.execute(sql)
    # 获取所有记录列表
    results = cursor.fetchall()
    for row in results:
        id = row[0]
        name = row[1]
        age = row[2]
        sex = row[3]
        # 打印结果
        print("id=%d,name=%s,age=%d,sex=%s" % (id, name, age, sex))
except:
    print("Error: unable to fetch data")

# 关闭数据库连接
db.close()

在上面的代码示例中,我们首先定义了一个SQL语句,使用execute()方法执行了一个SELECT语句,查询了“students”表中所有年龄大于18岁的记录。然后使用fetchall()方法获取查询结果,并使用for循环依次输出每一条记录的id、name、age和sex。

修改数据库表中的数据
在MySQL数据库中,我们可以使用UPDATE语句来更新表中的数据。下面是修改“students”表中一条记录的代码示例:

import pymysql

# 打开数据库连接
db = pymysql.connect("localhost", "username", "password", "database")

# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()

# SQL 查询语句
sql = "UPDATE students SET AGE = AGE + 1 WHERE SEX = 'M'"

try:
    # 执行SQL语句
    cursor.execute(sql)
    # 提交到数据库执行
    db.commit()
except:
    # 如果发生错误则回滚
    db.rollback()

# 关闭数据库连接
db.close()

在上面的代码示例中,我们先定义了一个SQL语句,使用execute()方法执行了一个UPDATE语句,将“students”表中所有性别为男性的记录的年龄加1。然后使用commit()方法提交到数据库中,如果在执行UPDATE语句时出错,则使用rollback()方法回滚事务。

删除数据库表中的数据
在MySQL数据库中,我们可以使用DELETE语句来删除表中的数据。下面是删除“students”表中一条记录的代码示例:

import pymysql

# 打开数据库连接
db = pymysql.connect("localhost", "username", "password", "database")

# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()

# SQL 查询语句
sql = "DELETE FROM students WHERE ID = '%d'" % (1)

try:
    # 执行SQL语句
    cursor.execute(sql)
    # 提交到数据库执行
    db.commit()
except:
    # 如果发生错误则回滚
    db.rollback()

# 关闭数据库连接
db.close()

在上面的代码示例中,我们先定义了一个SQL语句,使用execute()方法执行了一个DELETE语句,删除了“students”表中ID为1的记录。然后使用commit()方法提交到数据库中,如果在执行DELETE语句时出错,则使用rollback()方法回滚事务。

总结
在本文中,我们介绍了如何使用pymysql库来连接和操作MySQL数据库。我们学习了如何创建数据库表、向表中插入数据、查询表中的数据、修改表中的数据和删除表中的数据。以上是pymysql库的基本操作,希望本文对您的学习有所帮助。