zoukankan      html  css  js  c++  java
  • python下操作mysql 之 pymsql

    python下操作mysql  之  pymsql

                                  pymsql是Python中操作MySQL的模块,

    下载安装:

    pip3 install pymysql

    使用操作
      1, 执行SQL

    #!/usr/bin/env python
    
    # -*- coding:utf-8 -*-
    
    import pymysql
    
      
    
    # 创建连接
    
    conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='123', db='t1')
    
    # 创建游标
    
    cursor = conn.cursor()
    
      
    
    # 执行SQL,并返回收影响行数
    
    effect_row = cursor.execute("update hosts set host = '1.1.1.2'")
    
      
    
    # 执行SQL,并返回受影响行数
    
    #effect_row = cursor.execute("update hosts set host = '1.1.1.2' where nid > %s", (1,))
    
      
    
    # 执行SQL,并返回受影响行数
    
    #effect_row = cursor.executemany("insert into hosts(host,color_id)values(%s,%s)", [("1.1.1.11",1),("1.1.1.11",2)])
    
      
    
      
    
    # 提交,不然无法保存新建或者修改的数据
    
    conn.commit()
    
      
    
    # 关闭游标
    
    cursor.close()
    
    # 关闭连接
    
    conn.close()
    View Code

      2, 获取新创建数据自增ID

    #!/usr/bin/env python
    
    # -*- coding:utf-8 -*-
    
    import pymysql
    
      
    
    conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='123', db='t1')
    
    cursor = conn.cursor()
    
    cursor.executemany("insert into hosts(host,color_id)values(%s,%s)", [("1.1.1.11",1),("1.1.1.11",2)])
    
    conn.commit()
    
    cursor.close()
    
    conn.close()
    
      
    
    # 获取最新自增ID
    
    new_id = cursor.lastrowid
    View Code

      3, 获取查询数据

    #!/usr/bin/env python
    
    # -*- coding:utf-8 -*-
    
    import pymysql
    
      
    
    conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='123', db='t1')
    
    cursor = conn.cursor()
    
    cursor.execute("select * from hosts")
    
      
    
    # 获取第一行数据
    
    row_1 = cursor.fetchone()
    
      
    
    # 获取前n行数据
    
    # row_2 = cursor.fetchmany(3)
    
    # 获取所有数据
    
    # row_3 = cursor.fetchall()
    
      
    
    conn.commit()
    
    cursor.close()
    
    conn.close()
    View Code

      注:在fetch数据时按照顺序进行,可以使用cursor.scroll(num,mode)来移动游标位置,如:

    • cursor.scroll(1,mode='relative')  # 相对当前位置移动
    • cursor.scroll(2,mode='absolute') # 相对绝对位置移动

      4, fetch 数据类型

    #!/usr/bin/env python
    
    # -*- coding:utf-8 -*-
    
    import pymysql
    
      
    
    conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='123', db='t1')
    
      
    
    # 游标设置为字典类型
    
    cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
    
    r = cursor.execute("call p1()")
    
      
    
    result = cursor.fetchone()
    
      
    
    conn.commit()
    
    cursor.close()
    
    conn.close()
    View Code

      5,input 下执行

    import pymysql
    username = input('请输入用户名:')
    
    pwd = input('请输入密码:')
    
    
    
    # 1.连接
    conn = pymysql.connect(host='localhost', port=3306, user='root', password='', db='db8', charset='utf8')
    
    
    # 2.创建游标
    cursor = conn.cursor()
    
    
    # 操作
    #
    # sql = "insert into userinfo(username,pwd) values (%s,%s)"
    
    
    # effect_row = cursor.execute(sql,(username,pwd))
    #同时插入多条数据
    #cursor.executemany(sql,[('李四','110'),('王五','119')]) 
    
    # print(effect_row)#
    
    #
    # sql = "update userinfo set username = %s  where id = 2"
    # effect_row = cursor.execute(sql,username)
    # print(effect_row)
    
    
    #
    sql = "delete from userinfo  where id = 2"
    effect_row = cursor.execute(sql)
    print(effect_row)
    
    
    #一定记得commit
    conn.commit()
    
    # 4.关闭游标
    cursor.close()
    
    # 5.关闭连接
    conn.close()
    View Code

     

  • 相关阅读:
    父子进程 signal 出现 Interrupted system call 问题
    一个测试文章
    《淘宝客户端 for Android》项目实战 html webkit android css3
    Django 中的 ForeignKey ContentType GenericForeignKey 对应的数据库结构
    coreseek 出现段错误和Unigram dictionary load Error 新情况(Gentoo)
    一个 PAM dbus 例子
    漫画统计学 T分数
    解决 paramiko 安装问题 Unable to find vcvarsall.bat
    20141202
    js
  • 原文地址:https://www.cnblogs.com/konghui/p/10013066.html
Copyright © 2011-2022 走看看