20、MySQLdb

MySQLdb

  • win64位安装python-mysqldb1.2.5html

  • ubuntu下安装MySQLdbpython

    sudo apt-get install python-MySQLdb
  • 导入MySQLdb库mysql

    import MySQLdb
  • 建立数据库链接git

    conn = MySQLdb.connect(host="localhost",user="root",passwd="123456",db="test",charset="utf8")
  • connect对象属性
    • commit():若是数据库表进行了修改,提交保存当前的数据。固然,若是此用户没有权限就做罢了,什么也不会发生。
    • rollback():若是有权限,就取消当前的操做,不然报错。
    • cursor([cursorclass]):游标指针。
  • 建立游标(指针)cursorgithub

    cur = conn.cursor()
  • cursor执行命令的方法:
    • execute(query, args):执行单条sql语句。query为sql语句自己,args为参数值的列表。执行后返回值为受影响的行数。
    • executemany(query, args):执行单条sql语句,可是重复执行参数列表里的参数,返回值为受影响的行数
  • 在数据表中插入一条记录sql

    cur.execute("insert into users (username,password,email) values (%s,%s,%s)",("python","123456","python@gmail.com"))
  • 在数据表中插入多条记录docker

    cur.executemany("insert into users (username,password,email) values (%s,%s,%s)",(("google","111222","g@gmail.com"),("facebook","222333","f@face.book"),("github","333444","git@hub.com"),("docker","444555","doc@ker.com")))
  • 提交数据库操做数据库

    conn.commit()
  • 查询数据ubuntu

    cur.execute("select * from users")
    • cursor对象获取数据的方法
      • fetchall(self):接收所有的返回结果行.
      • fetchmany(size=None):接收size条返回结果行.若是size的值大于返回的结果行的数量,则会返回cursor.arraysize条数据.
      • fetchone():返回一条结果行.
      • scroll(value, mode='relative'):移动指针到某一行.若是mode='relative',则表示从当前所在行移动value条,若是mode='absolute',则表示从结果集的第一行移动value条.fetch

        cur.execute("select * from users")
          lines = cur.fetchall()
          for line in lines:
              print line
        
          cur.execute("select * from users where id=1")
          line_first = cur.fetchone()     #只返回一条
          print line_first
        
          cur.execute("select * from users")
          print cur.fetchall()
  • 游标cursor的操做

    • cur.scroll(n)cur.scroll(n,"relative"):意思是相对当前位置向上或者向下移动,n为正数,表示向下(向前),n为负数,表示向上(向后)

    • 还有一种方式,能够实现“绝对”移动,不是“相对”移动:增长一个参数"absolute"

      cur.scroll(1)
        cur.scroll(-2)
        cur.scroll(2,"absolute")    #回到序号是2,但指向第三条
  • 更新数据

    cur.execute("update users set username=%s where id=2",("mypython"))
      conn.commit()
  • 指定数据库

    conn = MySQLdb.connect("localhost","root","123456",port=3306,charset="utf8")    #建立数据库时不指定那个数据库
      conn.select_db("test")      #链接建立后再指定
  • 关闭数据库

    cur.close()     #先关闭游标
      conn.close()    #再关闭数据库
相关文章
相关标签/搜索