zoukankan      html  css  js  c++  java
  • python 操作数据库

    链接数据库

    conn = MySQLdb.connect(host='127.0.0.1',user='root',passwd='123456',db='08day5')
    cur = conn.cursor()

    查看列名

    在定义光标时,可以将其定义为字典形式,这样查询数据时可以查看对应列名:

    import MySQLdb
    conn = MySQLdb.connect(host='127.0.0.1',user='root',passwd='123456',db='08day5')
    cur = conn.cursor(cursorclass = MySQLdb.cursors.DictCursor)
    
    sql='select * from userinfo'
    reCount = cur.execute(sql)
    reData  = cur.fetchall() 
    
    print reData
    
    cur.close()
    conn.close()

    操作数据库

    1.查询数据库内容

    reCount=cur.execute("select * from userinfo")      #execute对数据库进行操作。
    reData  = cur.fetchall()                           #查询数据库内容,需进行操作后,再可以使用该命令

    2.对数据库进行插入

    reCount = cur.execute('insert into userinfo(id,name,passwd) values(2,"root","2345")')
    conn.commit()    #提交数据

    3.对数据库进行修改

    reCount = cur.execute('update userinfo set name="test" where id=2')
    conn.commit()

    4.对数据库进行删除

    reCount = cur.execute('delete from  userinfo where id=2')
    conn.commit()

    5.在进行数据库操作时,我们需要进行不同的操作类型和修改的内容都不一致。所以我们可以将数据库命令和修改的内容分别用变量来表示,我们以插入数据来看下:

    sql='insert into userinfo(id,name,passwd) values(%s,%s,%s)'
    params=(2,"root","2345")                #用元祖来进行数据添加
    reCount = cur.execute(sql,params)       #execute(sql[, parameters])
    conn.commit()

    6.批量插入数据

    ①将要插入的数据定义为列表

    ②使用executemany来执行命令

    sql='insert  userinfo(id,name,passwd) values(%s,%s,%s)'
    params=[
          (2,"root","2345"),
          (3,"test","3456")
          ]
    reCount = cur.executemany(sql,params)
    conn.commit()

    7.指针移动(绝对位置,相对位置)

    相对位置:cur.scroll(-1,mode='relative')

    绝对位置:cur.scroll(0,mode='absolute')

    可以使用fetchone来进行验证。

    8.获取自增ID:

    使用lastrowid来获取

    import MySQLdb
    conn = MySQLdb.connect(host='127.0.0.1',user='root',passwd='123456',db='08day5')
    cur = conn.cursor()
    
    sql='insert  getid(name,passwd) values(%s,%s)'
    params=[
          ("admin1","1234"),
          ]
    reCount = cur.executemany(sql,params)
    conn.commit()
    print cur.lastrowid   #使用lastrowid来获取最后修改的自增id,如果是使用查询或者更改的命令,则lsatrowid为None(0) 
    
    cur.close()
    conn.close()

    关闭数据库

    cur.close()
    conn.close()
  • 相关阅读:
    021.10 IO流 打印流
    1、Node.js 我的开始+安装
    021.9 IO流 流总结
    021.8 properties(开发使用频率高)
    021.7 装饰设计模式
    021.6 IO流 练习
    021.5 IO流——字符流
    scrapy基础知识之 CrawlSpiders爬取lagou招聘保存在mysql(分布式):
    scrapy基础知识之 关于爬虫部分一些建议:
    scrapy基础知识之 处理Redis里的数据:
  • 原文地址:https://www.cnblogs.com/white-small/p/6368810.html
Copyright © 2011-2022 走看看