Python实现mysql的基本操作

本文介绍了如何使用Python的pymysql模块进行MySQL数据库的基本操作,包括环境配置、数据库连接、创建/删除表格、增加数据、查找数据、更新数据以及删除数据。通过示例代码详细阐述了每个操作的过程和方法。
摘要由CSDN通过智能技术生成

目录

首先是环境的配置

MySQL数据库的连接

 如何使用python建立/删除表格:

MySQL增加数据

MySQL数据的查找

MySQL 数据的更新

 最后:数据的删除


今天来说说怎么用Python实现MySQL的基本操作,包括连接,建表与增删查改

首先是环境的配置

        Python本身不带有mysql的通信模块,所以我们需要导入第三方模块—— pymysql,我们使用标准库管理器pip来导入,按win+R键,输入cmd打开命令行程序,输入以下代码

pip install pymysql

就可完成环境的配置,可使用 “import pymysql”来使用了

MySQL数据库的连接

        我们使用pymysql的其中的connect方法来完成数据库的连接,connect的初始化方法如下:

import pymysql

HOST ='localhost'   # 数据库主机地址
USER ='root'    # 数据库用户名
PASS ='******' # 数据库密码
NAME ='test1'  # 数据库名称

try:
    db=pymysql.connect(host=HOST,user=USER,passwd=PASS,database=NAME)#返回一个表示数据库连接的对象
    print("Successfully connected")#建立连接
except pymysql.Error as e:# 处理捕获到的异常
    print("Failed :"+str(e))    

在实际的应用中 connect的初始化参数还包括port(端口号)与charset(字符集),不过按需求而定,本篇不使用。

注意:当你在本地计算机上运行数据库服务器时,可以使用 localhost 作为数据库服务器的主机名来建立与数据库的连接。

运行程序:

数据库连接成功。 

 如何使用python建立/删除表格:

      cursor(游标)是pymysql库中的一个类,用于执行SQL语句并获取查询结果。  使用连接好的数据库(上文的db)即可创建一个游标对象:

cur=db.cursor()

接下来我们来看怎么建表: 

sql ='DROP TABLE IF EXISTS test01'#sql语句:如果表格存在则删除表格
cur.execute(sql)#删除表格
sql ="CREATE TABLE test01(name CHAR(20) NOT NULL,email CHAR(20),age INT)"
cur.execute(sql)#创建表格

注: execute是一个方法,用于执行SQL语句并将其发送到数据库进行处理。

在这个例子中,表test01有三个列:
name是一个CHAR(20)类型的列,长度为20个字符,且不能为空。
email是一个CHAR(20)类型的列,长度为20个字符。
age是一个INT类型的列。
这个SQL语句的作用是在数据库中创建一个名为test01的表,该表包含三个列:name、email和age。 

MySQL增加数据

增加数据需使用mysql语句如下

sql = "INSERT INTO 表名 (列1, 列2, 列3) VALUES ('值1', '值2', '值3')"
cur.execute(sql)

或者:

sql = "INSERT INTO 表名 (列1, 列2, 列3) VALUES (%s, %s, %s)"
values = ('值1', '值2', '值3')
cur.execute(sql, values)

 举例如下:  

import pymysql

HOST ='localhost'   # 数据库主机地址
USER ='root'    # 数据库用户名
PASS ='******' # 数据库密码
NAME ='test1'  # 数据库名称

try:
    db=pymysql.connect(host=HOST,user=USER,passwd=PASS,database=NAME)
    print("Successfully connected")#建立连接
    cur=db.cursor()

    sql ='DROP TABLE IF EXISTS test01'
    cur.execute(sql)#删除表格
    sql ="CREATE TABLE test01(name CHAR(20) NOT NULL,email CHAR(20),age INT)"
    cur.execute(sql)
    print("Successfully created table")#创建表格

    sql = "INSERT INTO test01 (name, email, age) VALUES (%s, %s, %s)"
    values = ("01", "01@example.com", 25)#将数据插入新表
    cur.execute(sql, values)
    db.commit()
    print("Successfully inserted data into test01 table")#插入数据
except pymysql.Error as e:
    print("Failed :"+str(e))    

注:commit()是一个用于提交事务的操作。事务是一组数据库操作的逻辑单元,要么全部执行成功,要么全部回滚(撤销)。commit命令用于将之前执行的数据库操作永久保存到数据库中。 

结果如下:

 

打开Navicat(数据库管理软件):

说明数据成功插入数据库

MySQL数据的查找

查找数据的sqlsql语句:

sql='SELECT * FROM test01#提取所有数据'

sql="SELECT * FROM test01 LIMIT 5"#从名为 test01 的表中检索前 5 条记录

sql="SELECT * FROM 表名  OFFSET 2"#从第 3 条记录开始返回所有列的数据。

sql='SELECT * FROM test01 LIMIT 0, 2'
"""
SELECT * 表示选择所有的列。
FROM test01 表示从名为 test01 的表中进行查询。
LIMIT 0, 2 表示限制查询结果的返回行数。在这个例子中,它指定从第 0 行开始,返回 2 行数据。
"""

 应用如下:

import pymysql

HOST ='localhost'   # 数据库主机地址
USER ='root'    # 数据库用户名
PASS ='******' # 数据库密码
NAME ='test1'  # 数据库名称

try:
    db=pymysql.connect(host=HOST,user=USER,passwd=PASS,database=NAME)
    print("Successfully connected")#建立连接
    cur=db.cursor()

    sql ='DROP TABLE IF EXISTS test01'
    cur.execute(sql)#删除表格
    sql ="CREATE TABLE test01(name CHAR(20) NOT NULL,email CHAR(20),age INT)"
    cur.execute(sql)
    print("Successfully created table")#创建表格

    sql = "INSERT INTO test01 (name, email, age) VALUES (%s, %s, %s)"
    values = ("01", "01@example.com", 25)
    values2=("02", "02@example.com", 25)
    cur.execute(sql, values)
    cur.execute(sql,values2)
    db.commit()
    print("Successfully inserted data into test01 table")#插入数据

    cur.execute("SELECT * FROM test01 LIMIT 0, 2")
    row = cur.fetchone()# 获取一行数据
    while row is not None:
        print(row)#处理数据
        row = cur.fetchone()# 获取下一行数据
except pymysql.Error as e:
    print("Failed :"+str(e))    

注:fetchone() 是一个用于从数据库结果集中获取一行数据的方法。
在Python中,当你执行一个查询并获取结果集后,你可以使用 fetchone() 方法来获取结果集中的下一行数据。每次调用 fetchone() 方法,它会返回结果集中的下一行作为一个元组(tuple),直到结果集中的所有行都被获取完毕。

运行结果:

MySQL 数据的更新

更新数据库使用的sql语句:

sql="UPDATE 表名 SET 列名1 = 值1, 列名2 = 值2 WHERE 条件"

举例如下,我们在上述实验的提取数据与插入数据之间 添加以下语句:

 sql = "UPDATE test01 SET age = 30 WHERE email = '01@example.com'"
 cur.execute(sql)
 db.commit()
 print("Successfully updated")#更新数据

结果显而易见:

 最后:数据的删除

删除数据的sql语句:

    sql = "DELETE FROM 表名 WHERE 条件"

综合以上所有操作,如下:

import pymysql

HOST ='localhost'   # 数据库主机地址
USER ='root'    # 数据库用户名
PASS ='******' # 数据库密码
NAME ='test1'  # 数据库名称

try:
    db=pymysql.connect(host=HOST,user=USER,passwd=PASS,database=NAME)
    print("Successfully connected")#建立连接
    cur=db.cursor()

    sql ='DROP TABLE IF EXISTS test01'
    cur.execute(sql)#删除表格
    sql ="CREATE TABLE test01(name CHAR(20) NOT NULL,email CHAR(20),age INT)"
    cur.execute(sql)
    print("Successfully created table")#创建表格

    sql = "INSERT INTO test01 (name, email, age) VALUES (%s, %s, %s)"
    values = ("01", "01@example.com", 25)
    values2=("02", "02@example.com", 25)
    cur.execute(sql, values)
    cur.execute(sql,values2)
    db.commit()
    print("Successfully inserted data into test01 table")#插入数据

    sql = "UPDATE test01 SET age = 30 WHERE email = '01@example.com'"
    cur.execute(sql)
    db.commit()
    print("Successfully updated")#更新数据

    sql = "DELETE FROM test01 WHERE age = 25"
    cur.execute(sql)
    db.commit()
    print("Successfully deleted")#删除数据
    

    cur.execute("SELECT * FROM test01")
    row = cur.fetchone()
    while row is not None:
        print(row)#提取数据
        row = cur.fetchone()
    db.close()
except pymysql.Error as e:
    print("Failed :"+str(e))    

最终结果:

感谢观看 

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Phenylalanine_苯丙氨酸

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值