• Python的数据库操作(pymysql)


    使用原生SQL语句进行对数据库操作,可完成数据库表的建立和删除,及数据表内容的增删改查操作等。其可操作性很强,如可以直接使用“show databases”、“show tables”等语句进行表格之外的部分操作。

    Centos7远程操作数据库时需要关闭防火墙,否则会连接不上

    安装:

    pip3 install pymysql

    数据查询:

     1 import pymysql
     2 
     3 #建立数据库连接
     4 conn=pymysql.connect(host="192.168.1.175",port=3306,user="root2",passwd="proot2",db="dongdb")
     5 
     6 #得到数据库操作游标
     7 cur=conn.cursor()
     8 
     9 #查询数据
    10 resdata=cur.execute("select * from tb_dong")
    11 
    12 print("总条数为:",resdata)
    13 
    14 #一行一行输出数据,以元组形式
    15 print("取出第一条数据:",cur.fetchone())
    16 print("取出第二条数据:",cur.fetchone()[3])
    17 
    18 #输出剩下的所有数据,以元组嵌套形式
    19 print("取出剩下的数据:",cur.fetchall())
    20 
    21 print("------  完成操作   -------")
    22 
    23 #关闭连接
    24 conn.close()

    通过字段名获取

    import pymysql
    #建立数据库连接
    conn=pymysql.connect(host="47.102.218.59",port=3306,user="rr",passwd="rr",db="tt")
    
    #得到数据库操作游标
    cur=conn.cursor(cursor = pymysql.cursors.DictCursor)
    
    #查询数据
    resdata=cur.execute("select * from ee")
    
    print("总条数为:",resdata)
    
    user=cur.fetchone()["w"]
    
    print(user)
    #关闭连接
    conn.close()

    数据插入:

    也可以使用 execute() 进行操作

     1 import pymysql
     2 
     3 #建立数据库连接
     4 conn=pymysql.connect(host="192.168.1.175",port=3306,user="root2",passwd="proot2",db="dongdb")
     5 
     6 #得到数据库操作游标
     7 cur=conn.cursor()
     8 
     9 #插入数据
    10 datax=[
    11     ("DXD1","M","东小东1"),
    12     ("DXD2","F","东小东2")
    13 ]
    14 
    15 #返回影响行数
    16 rescoun=cur.executemany("insert into tb_dong(namex,sex,otherxxx) values(%s,%s,%s)",datax)
    17 print(rescoun)
    18 
    19 #进行数据修改,必须提交事物
    20 conn.commit()
    21 
    22 print("------  完成操作   -------")
    23 
    24 #关闭数据库连接
    25 conn.close()

    数据修改:

    #返回影响行数,如果值未进行任何修改则返回0
    rescoun=cur.execute("update tb_dong set namex='%s',sex='%s' where id>%d"%("dongdong","F",16))
    print(rescoun)
    
    #进行数据修改,必须提交事物
    conn.commit()

    数据删除:

    #返回影响行数
    rescoun=cur.execute("delete from tb_dong where id>%d"%(16))
    conn.commit() #提交事物

    部分封装:

     1 import pymysql
     2 
     3 #建立数据库连接
     4 conn=pymysql.connect(host="192.168.1.175",port=3306,user="root2",passwd="proot2",db="dongdb")
     5 #得到数据库操作游标
     6 cur=conn.cursor()
     7 
     8 #删除
     9 def dongdel(tablex,idx):
    10    try:
    11 
    12     rescoun = cur.execute("delete from %s where id=%d" % (tablex,idx))
    13     conn.commit() #提交事物
    14     return rescoun
    15 
    16    except Exception as e:
    17      print("删除出现错误", e)
    18      return e
    19 #插入
    20 def donginsert(tablex,listx):
    21  try:
    22 
    23     rescoun = cur.executemany("insert into "+tablex+"(namex,sex,otherxxx) values(%s,%s,%s)",listx)
    24     conn.commit()
    25     return rescoun
    26 
    27  except Exception as e:
    28       print("插入出现错误",e)
    29       return e
    30 
    31 #查询,参数为表名和id值
    32 def dongselect(tablex,idx=0):
    33   try:
    34 
    35     if idx==0:
    36         resdata = cur.execute("select * from %s"%tablex)
    37     else:
    38         resdata = cur.execute("select * from %s where id=%d" %(tablex,idx))
    39     return resdata
    40 
    41   except Exception as e:
    42       print("查询出现错误",e)
    43       return e
    44 #修改
    45 def dongupdate(tablex,idx,namex):
    46    try:
    47 
    48     rescoun = cur.execute("update %s set namex='%s' where id=%d" % (tablex,namex,idx))
    49     conn.commit()
    50     return rescoun
    51 
    52    except Exception as e:
    53       print("更新出现错误", e)
    54       return e
    55 
    56 #删除数据
    57 resdel=dongdel("tb_dong",6)
    58 print("删除的条数为:",resdel)
    59 
    60 
    61 #插入数据
    62 datax=[
    63     ("dongxiaodong","M","东小东1")
    64 ]
    65 resinsert=donginsert("tb_dong",datax)
    66 print("插入的条数为:",resinsert)
    67 
    68 #修改数据
    69 resupdate=dongupdate("tb_dong",7,"dongxiaodong7")
    70 print("修改的条数为:",resupdate)
    71 
    72 
    73 #查询数据
    74 resselect=dongselect("tb_dong",0)
    75 print("查询的总条数为:",resselect)
    76 print("全部数据为:",cur.fetchall())
    77 
    78 
    79 #关闭数据库连接
    80 conn.close()
  • 相关阅读:
    初探JavaScript(一)——也谈元素节点、属性节点、文本节点
    解决Myeclipse下Debug出现Source not found以及sql server中导入数据报错
    Hadoop阅读笔记(六)——洞悉Hadoop序列化机制Writable
    Hadoop阅读笔记(五)——重返Hadoop目录结构
    Hadoop阅读笔记(四)——一幅图看透MapReduce机制
    可视化(番外篇)——在Eclipse RCP中玩转OpenGL
    可视化(番外篇)——SWT总结
    Hadoop阅读笔记(三)——深入MapReduce排序和单表连接
    探秘Tomcat(一)——Myeclipse中导入Tomcat源码
    osgearth将视点绑定到一个节点上
  • 原文地址:https://www.cnblogs.com/dongxiaodong/p/10495573.html
Copyright © 2020-2023  润新知