Python操作MySQL数据库

博客介绍了使用Python对MySQL数据库进行增删改查操作。指出操作时主要是SQL语句变化,其他部分类似。还提醒查询操作无需提交,因为未对表格进行改变,且给cursor不同参数查询结果不同,但一般不添加参数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


这是我所操作的表的数据

mysql> create table X(
    -> name varchar(30),
    -> age int);
Query OK, 0 rows affected (0.02 sec)

mysql> insert into X values('小华',18),('李四',16),('王五',20);
Query OK, 3 rows affected (0.00 sec)

mysql> select * from X;
+------+------+
| name | age  |
+------+------+
| 小华 |   18 |
| 李四 |   16 |
| 王五 |   20 |
+------+------+
3 rows in set (0.00 sec

下面是使用python对MySQL进行增删改查
其实也就那sql语句在变,其他都差不多

增:

import pymysql

con = pymysql.connect(host='localhost',user='root',password='填你的MySQL的密码',port=填你MySQL的端口号(默认是3306,注意填的是数字),database='填你要操作的数据库的名字',charset='utf8')# charset默认是utf8mb4,不修改也可以

try:
    with con.cursor() as cur:
        # 插入一条数据
        sql = 'insert into X values("小美",18)'
        result = cur.execute(sql)# 执行sql语句
        # 插入成功会返回1
        if result:
            print('添加成功')
        # 插入多条数据,使用循环就好了
        con.commit()# 不提交是不会保存你的操作的
except Exception as e:
    print(e)
    print('添加失败')
    con.rollback()# 回退
finally:
    con.close()

执行上述代码之后再对X表进行查询

mysql> select * from X;
+------+------+
| name | age  |
+------+------+
| 小华 |   18 |
| 李四 |   16 |
| 王五 |   20 |
| 小美 |   18 |
+------+------+
4 rows in set (0.00 sec)

删:

import pymysql

con = pymysql.connect(host='localhost',user='root',password='填你的MySQL的密码',port=填你MySQL的端口号(默认是3306,注意填的是数字),database='填你要操作的数据库的名字',charset='utf8')# charset默认是utf8mb4,不修改也可以

try:
    with con.cursor() as cur:
        sql = 'delete from X where name="小美"'
        result = cur.execute(sql)
        if result:
            print('删除成功')
        con.commit()
except Exception as e:
    print(e)
    print('删除失败')
    con.rollback()
finally:
    con.close()
mysql> select * from X;
+------+------+
| name | age  |
+------+------+
| 小华 |   18 |
| 李四 |   16 |
| 王五 |   20 |
+------+------+
3 rows in set (0.00 sec)

改:

import pymysql

con = pymysql.connect(host='localhost',user='root',password='填你的MySQL的密码',port=填你MySQL的端口号(默认是3306,注意填的是数字),database='填你要操作的数据库的名字',charset='utf8')# charset默认是utf8mb4,不修改也可以

try:
    with con.cursor() as cur:
        sql = 'update  X set name="张三" where name="小华"'
        result = cur.execute(sql)
        if result:
            print('修改成功')
        con.commit()
except Exception as e:
    print(e)
    print('修改失败')
    con.rollback()
finally:
    con.close()
mysql> select * from X;
+------+------+
| name | age  |
+------+------+
| 张三 |   18 |
| 李四 |   16 |
| 王五 |   20 |
+------+------+
3 rows in set (0.00 sec)

import pymysql

con = pymysql.connect(host='localhost',user='root',password='填你的MySQL的密码',port=填你MySQL的端口号(默认是3306,注意填的是数字),database='填你要操作的数据库的名字',charset='utf8')# charset默认是utf8mb4,不修改也可以

try:
    with con.cursor() as cur:
        sql = 'select * from X'
        cur.execute(sql)
        # print(cur.fetchone())# ('张三', 18)
        # print(cur.fetchone())# ('李四', 16)
        # print(cur.fetchone())# ('王五', 20)

        # 获取全部
        # print(cur.fetchall())# (('张三', 18), ('李四', 16), ('王五', 20))

        # 获取多条
        # 不给参数默认是获取第一条
        print(cur.fetchmany(2))# (('张三', 18), ('李四', 16))

except Exception as e:
    print(e)
    print('查询失败')
finally:
    con.close()

注意:查询不需要进行提交,没对表格进行改变
给cursor不同的参数,查询到的结果就不同,不过我们一般不去添加参数

import pymysql
from pymysql.cursors import DictCursor

con = pymysql.connect(host='localhost',user='root',password='填你的MySQL的密码',port=填你MySQL的端口号(默认是3306,注意填的是数字),database='填你要操作的数据库的名字',charset='utf8')# charset默认是utf8mb4,不修改也可以

try:
    with con.cursor(DictCursor) as cur:
        sql = 'select * from X'
        cur.execute(sql)
        print(cur.fetchall())# [{'name': '张三', 'age': 18}, {'name': '李四', 'age': 16}, {'name': '王五', 'age': 20}]
except Exception as e:
    print(e)
    print('查询失败')
finally:
    con.close()
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值