2021-05-22

pymysql操作MySQL数据库

  1. 安装pymysql
    在Python中可使用pymysql与MySQL进行交互
pip install pymysql
  1. 了解Python中with(上下文管理器)语法使用
    在python中,我们使用文件常常会遇到文件打开代码后没有关闭指令或者文件发生异常的问题,这时我们可以使用python中with语句,with 语句适用于对资源进行访问的场合,确保不管使用过程中是否发生异常都会执行必要的“清理”操作,释放资源。
    具体用法可参考with语法
  2. 利用pymysql创建一张表
connect = mysql.connect(host="localhost",  # 用户ip
                        user="输入用户名",  # 用户名
                        passwd="输入密码",  # 密码
                        database='db03',  # 需要进行操作的数据库
                        charset='utf8')   # 选择字符集
# 创建一个雇员表emp
sql = "CREATE TABLE emp ("  \
            "id INT PRIMARY KEY,"  \
            "`name` VARCHAR(32),"  \
            "age INT,"  \
            "gender ENUM('male', 'female')) CHARSET utf8"

with connect:
    with connect.cursor() as cursor:
        try:
            # 执行sql语句
            cursor.execute(sql)
            # 提交修改内容
            connect.commit()
            print('成功!')
        except:
            connect.rollback()
            print('失败!')
  1. 插入单条数据

with connect:
    with connect.cursor() as cursor:
        sql = "INSERT INTO `emp`(`id`, `name`, `age`, `gender`)" \
              "VALUES(%s, '%s', %s, '%s')" % \
              (1, '王昭君', 18, 'female')
        try:
            cursor.execute(sql)
            # 提交修改内容
            connect.commit()
            print('成功!')
        except:
            # 发生错误,回滚
            connect.rollback()
            print('失败!')

    with connect.cursor() as cursor:
        sql = "SELECT * FROM `emp`"
        cursor.execute(sql)
        # 返回所有记录
        result = cursor.fetchall()
        print(result)
  1. 插入多条数据

sql = "INSERT INTO `emp`(`id`, `name`, `age`, `gender`)" \
      "VALUES(%s, %s, %s, %s)"  # 插入单条时 (%s, '%s', %s, '%s')

values = [(2, '张三', 19, 'male'),
          (3, '王二', 25, 'male'),
          (4, '西施', 20, 'female'),
          (5, '貂蝉', 21, 'female')]

with connect:
    with connect.cursor() as cursor:
        try:
            cursor.executemany(sql, values)
            connect.commit()
            print('插入成功!')
        except:
            connect.rollback()
            print('插入失败!')

    with connect.cursor() as cursor:
        sql = "SELECT * FROM `emp`"
        cursor.execute(sql)
        # 返回所有记录
        result = cursor.fetchall()
        print(result)

初次写博客,水平有限,希望大家多多指正。
参考文档:https://pymysql.readthedocs.io/en/latest/user/examples.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值