PyMySql操作数据库

一、 安装PyMySQL

  • 方法一

      pip install PyMySQL 
  • 方法二

      pip install PyMySQL -i 镜像地址
  • 查验

      pip list
      pip show pymysql

    二、 PyMySql 操作步骤

    1. 导包

      import pymysql
    2. 创建连接

      conn = pymysql.connect(host="", port=0, 
                    user="", password="", database="", charset="")
      host:数据库主机ip地址
      port:数据库使用的端口号 - int类型。 不能写成 string 类型,否则会报错!
      user:数据库用户名
      password:数据库密码
      database:数据名
      charset:字符集。 常用取值:utf8
      conn:成功建立好的 数据库连接对象
    3. 创建游标

      cursor = conn.cursor()
      
      查看当前游标号
      cursor.rownumber
      游标属性 rownumber:设置游标的位置。常常用来归零。cursor.rownumber = 0
      cursor 游标简介
       * 游标,负责提取结果集中的数据
       * 新创建的游标,指向结果集 0 条记录
       * 游标提取数据的方式:提取游标当前指向位置的  下一条记录
       * 每提取一条记录成功,游标会自动向下游动

    PyMySql操作数据库_第1张图片

    1. 执行sql语句

      cursor.execute("sql语句")
      
      查询语句:select--不修改数据库,会返回结果集
       * 从结果集中,提取 想要的数据 
       * 提取的方法
         * cursor.fetchone(): 从结果集中,提取一条记录
         * cursor.fetchmany(size): 从结果集中,提取 size 条记录
         * cursor.fetchall():提取结果集的 全部数据    
      
      增删改语句 insert、update、delete —— 没有 结果集返回,会修改数据库
       执行成功:提交事务。conn.commit()
       执行失败:回滚事务。conn.rollback()
    2. 关闭游标

      cursor.close()
    3. 关闭连接

      conn.close()

三、案例

查询数据库,获取 MySQL服务器 版本信息

# 1. 导包
import pymysql
# 2. 创建连接
conn = pymysql.connect(host="主机ip地址", port=8888, user="student",
                       password="123456", database="数据库名", charset="utf8")

# 3. 创建游标
cursor = conn.cursor()

# 4. 执行 sql 语句
cursor.execute("select version();")

# 5. 提取结果集,打印查看
result = cursor.fetchone()
# print("mysql的版本为:", result) 
print("mysql的版本为:", result[0])

# 6. 关闭游标
cursor.close()

# 7. 关闭连接
conn.close()

四、异常捕获查询数据

PyMySql操作数据库_第2张图片

# 1. 导包
import pymysql

# 声明变量,初值为 None。 将 conn、cursor变量的作用域,放大
conn = None
cursor = None
try:
    # 2. 创建连接
    conn = pymysql.connect(
                            host="主机ip地址", 
                            port=8888, 
                            user="student",
                            password="123456", 
                            database="数据库名", 
                            charset="utf8"
                        )
    # 3. 创建游标
    cursor = conn.cursor()

    # 4. 执行 查询 sql 语句
    cursor.execute("select * abc from 表名;")

    # 5. 提取结果集。打印查看
    # 查询t_book表,获取 第一条 数据
    res = cursor.fetchone()
    print("第一条:", res)

    cursor.rownumber = 0  # 设置 游标归0
    # 查询t_book表,获取 全部 数据
    res2 = cursor.fetchall()
    print("全部:", res2)

    cursor.rownumber = 2  # 设置游标 指向 第二条记录
    # 查询t_book表,获取 第3条和第4条 数据
    res3 = cursor.fetchmany(2)
    print("第3条和第4条:", res3)

except Exception as e:
    # 如果上述代码有错误出现,执行的代码
    print("执行查询sql失败:", str(e))

finally:
    # 6. 关闭游标
    cursor.close()

    # 7. 关闭连接
    conn.close()

五、异常捕获增删改数据

PyMySql操作数据库_第3张图片

 **************************修改***************************

# 1. 导包
import pymysql

conn = None
cursor = None

try:
  # 2. 创建连接
    conn = pymysql.connect(
                            host="主机ip地址", 
                            port=8888, 
                            user="student",
                            password="123456", 
                            database="数据库名", 
                            charset="utf8"
                        )
    # 3. 创建游标
    cursor = conn.cursor()

    # 4. 执行 update sql 语句。 
    cursor.execute("update 表名 set 字段=字段值; ")

    # 5. 管理事务,提交 commit
    conn.commit()
    print("更新完成~~~")
except Exception as err:
    # 回滚事务
    conn.rollback()
    print("更新数据库失败:", str(err))
finally:
    # 6. 关闭游标
    cursor.close()

    # 7. 关闭连接
    conn.close()

你可能感兴趣的:(pymysql接口设计)