zoukankan      html  css  js  c++  java
  • python 的mysql 操作

    参考文章

    import pymysql
    import pandas
    from IPython.core.display import display
    
    db = pymysql.connect(
        host='localhost',
        port=3306,
        user='root',
        password='root',
        db='test',
        charset='utf8'
    )
    
    cursor = db.cursor()
    sql = "select * from user"
    result = cursor.execute(sql)
    # result 接收的是总条数 是一个 int 值
    print(result)
    
    data = cursor.fetchone()
    # print(data)
    
    # fet**  系列的方法 是提取结果,不是拷贝
    resultSet = cursor.fetchall()
    
    print(resultSet)
    
    for i in resultSet:
        print(i)
    
    print(len(resultSet))
    
    print(resultSet[0])
    
    resultSet2 = cursor.fetchall()
    
    print(resultSet2)
    
    for i in range(len(resultSet)):
        print(i)
        print(resultSet[i])
    
    cursor.execute(sql)
    resultSet = cursor.fetchall()
    
    for a,b,c in resultSet:
        print(" 我的名字是{} ,编号是 {} , 这是我的密码{}".format(b,a,c))
    
    # 用表格显示
    df1 = pandas.read_sql(sql,db)
    display(df1)
    
    sqlinsert = 'insert into user (uname,pwd)values ("牛魔王","123123")'
    
    try:
        cursor.execute(sqlinsert)
        db.commit()
    except:
        print("insert failed")
        db.rollback()
    sqlinsert2 = 'insert into user (uname,pwd)values (%s,%s)'
    insertdata = [("孙悟空","123456"),("唐僧","123123")]
    try:
        cursor.executemany(sqlinsert2,insertdata)
        db.commit()
    except:
        print("insertFailed")
        db.rollback()
    
    sqlupdate = 'update user set pwd=%s where name=%s'
    try:
        cursor.execute(sqlupdate,[90000,"玉皇大帝"])
        db.commit()
    except:
        print("update failed")
        db.rollback()
    
    db.close();

    总结:

    • 第一: display() 函数来自 ipython ,注意导包
    • 第二:result = cursor.execute(sql)
      •   result 值的为 查询的结果数
    • 第三:resultSet = cursor.fetchall()
      •   提取结果
    • 第四:(%s,%s) 用于匹配给的数据,s 表示字符串
    • 第五: for 语句的给了三种用法
      •   直接 用 in 关键字,匹配一条结果(或子元素)
      •         range(int a)  给出迭代范围  0~a
      •        a,b,c in resultSet  a,b,c 按顺序匹配
    • 第六:pymysql 默认事务是开启的,手动提交
  • 相关阅读:
    github添加版本号
    centOS 7联网
    运用session来控制用户的异地登录被挤下线情况
    寻找节点d=n的节点算法
    基于Seajs的可控台球碰撞游戏
    RequireJs 源码解读及思考
    BackBone 源码解读及思考
    关于「远程兼职」
    cocos2d-html5 中的性能优化
    细说移动前端Android联调
  • 原文地址:https://www.cnblogs.com/lightandtruth/p/12523601.html
Copyright © 2011-2022 走看看