python操作mysql数据库

python操作数据库的过程:

创建连接—获取游标—执行命令—关闭游标—关闭连接
在这里插入图片描述

python访问mysql 要用pymysql库

pymysql需要安装:pip install pymysql
在这里插入图片描述
安装完之后导入pymysql,创建连接
连接数据库的参数按照实际情况添加,端口号默认是3306,我的有冲突,改成了3307

# 导入pymysql
import pymysql


# 定义一个函数
# 这个函数用来创建连接(连接数据库用)
def mysql_db():
    # 连接数据库肯定需要一些参数
    conn = pymysql.connect(
        host="127.0.0.1",
        port=3307,
        database="lebo",
        charset="utf8",
        user="root",
        passwd="root"
    )


if __name__ == '__main__':
    mysql_db()

关于游标,执行SQL,查询数据
游标需要创建游标还要关闭游标,为了防止忘关游标,所以用with

# 打开数据库可能会有风险,所以添加异常捕捉
    try:
        with conn.cursor() as cursor:
            # 准备SQL语句
            sql = "select * from user"
            # 执行SQL语句
            cursor.execute(sql)
            # 执行完SQL语句后的返回结果都是保存在cursor中
            # 所以要从cursor中获取全部数据
            datas = cursor.fetchall()
            print("获取的数据:\n", datas)
    except Exception as e:
        print("数据库操作异常:\n", e)
    finally:
        # 不管成功还是失败,都要关闭数据库连接
        conn.close()

在这里插入图片描述

cursor中获取数据的fetchall,fetchone,fetchmany

fetchall:获取当前SQL语句能查出来的全部数据
fetchone:每次获取一条数据。但是获取到这条数据后,指针会往后移一行数据
在这里插入图片描述
在这里插入图片描述
fetchmany:直接告诉它想要多少条数据
在这里插入图片描述
插入一条数据
重点一个是commit,一个是rollback。有提交的地方一定要有回滚。回滚到上次提交的地方

    try:
        with conn.cursor() as cursor:
            # 准备SQL语句
            value = "12,'鲁肃'"
            sql = f"insert into user values ({
     value});"
            # 执行SQL语句
            cursor.execute(sql)
            # 执行完要提交
            conn.commit()
            print("提交成功")
    except Exception as e:
        # 如果执行失败要回滚
        conn.rollback()
        print("数据库操作异常:\n", e)
    finally:
        # 不管成功还是失败,都要关闭数据库连接
        conn.close()

添加多条数据

    try:
        with conn.cursor() as cursor:
            # 准备要插入的数据
            # 插入一条
            # value = "12,'鲁肃'"
            # 插入多条
            value = "(13,'张三'),(14,'李四'),(15,'王五')"
            # 准备SQL语句
            sql = f"insert into user values {
     value};"
            # 执行SQL语句
            cursor.execute(sql)
            # 执行完要提交
            conn.commit()
            print("提交成功")
    except Exception as e:
        # 如果执行失败要回滚
        conn.rollback()
        print("数据库操作异常:\n", e)
    finally:
  
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值