zoukankan      html  css  js  c++  java
  • 数据库中pymysql模块的使用

    pymysql 模块

    使用步骤:

      核心类Connect链接用和Cursor读写用

      1. 与数据库服务器建立链接

      2. 获取游标对象(用于发送和接收数据)

      3. 用游标执行sql语句

      4. 使用fetch 方法来获取执行的结果

      5. 关闭链接 ,先关闭游标,再关链接

    游标的常用方法:

      1.创建游标 conn.cursor(指定查询结果的数据类型)

      2.excute 执行sql

      3. fetchone(当sql只有一条记录时) many(sql有多条并且需要指定条数) all(多条)

      4.scroll  用于修改游标的当前位置。

      注意:pymysql  默认不提交修改,但是注意(指的是对表中记录的操作不提交),像删除库和删除表是无法撤销的。

    """
    # 创建链接得到一个链接对象
    conn = pymysql.Connect(
        host="127.0.0.1",    # 数据库服务器主机地址
        user="root",  # 用户名
        password="admin", # 密码
        database="day42", #数据库名称
        port=3306, # 端口号 可选 整型
        charset="utf8" # 编码  可选
    )
    # 获取游标对象  pymysql.cursors.DictCursor指定 返回的结果类型 为字典  默认是元祖类型
    cursor = conn.cursor(pymysql.cursors.DictCursor)
    
    # 查询数据
    sql = "select *from emp"
    
    # 执行sql  如果是select 语句返回的是 查询的条数
    res = cursor.execute(sql)
    print(res)
    
    # 获取查询的结果
    # print(cursor.fetchall())
    # print(cursor.fetchone())
    # print(cursor.fetchone())
    # print(cursor.fetchmany(1))
    # print(cursor.fetchall())
    
    # scroll
    print(cursor.fetchone())
    cursor.scroll(-1)
    print(cursor.fetchall())
    
    
    # 关闭链接
    cursor.close()
    conn.close()

    添加,删除数据库中的内容

    import pymysql
    # 创建链接得到一个链接对象
    conn = pymysql.Connect(
        host="127.0.0.1",    # 数据库服务器主机地址
        user="root",  # 用户名
        password="admin", # 密码
        database="day42", #数据库名称
        port=3306, # 端口号 可选 整型
        charset="utf8" # 编码  可选
    )
    # 获取游标对象  pymysql.cursors.DictCursor指定 返回的结果类型 为字典  默认是元祖类型
    cursor = conn.cursor(pymysql.cursors.DictCursor)
    
    # # 添加数据
    # res = cursor.execute("insert into emp values(100,'胡歌','男',30,1,'job',60000)")
    # if res:
    #     print("插入成功")
    # else:
    #     print("插入失败")
    
    
    # 提交修改   因为pymysql 模块默认是启用事务的  你的sql语句 如果不提交 相当于没有执行
    
    # conn.commit()
    # res = cursor.execute("drop database day42")
    
    
    # res = cursor.execute("delete from t1 where id = 1")
    # print(res)
    
    try:
        cursor.execute("update moneyTable set money = money - 50 where name = '小明'")
        #如果小花的账户出问题了 无法更新数据 那就需要回滚
        cursor.execute("update moneyTable set money = money + 50 where name = '小花'")
        conn.commit()
    except:
        conn.rollback()
    
    
    
    cursor.close()
    conn.close()
    
    #  小明有100块 准备给小花转50
    # update moneyTable set money = money - 50 where name = "小明";
    # 发生一些别错误  如果发生了错误 就执行撤销操作 rollback;
    # update moneyTable set money = money + 50 where name = "小花";
    View Code
  • 相关阅读:
    Markdown 图片与图床使用
    gitignore
    设置或更改Mac文件的默认打开程序
    Hive时间处理
    csv大文件处理方案-数据量超表格最大容纳行数解决方案
    js中的闭包之我理解
    ASP.NET MVC5+EF6+EasyUI 后台管理系统(73)-微信公众平台开发-消息管理
    关于23种设计模式的有趣见解
    一步一步写算法(之 算法总结)
    ajax跨域通信-博客园老牛大讲堂
  • 原文地址:https://www.cnblogs.com/xuecaichang/p/9663414.html
Copyright © 2011-2022 走看看