zoukankan      html  css  js  c++  java
  • 20、MySQLdb

    MySQLdb

    • win64位安装python-mysqldb1.2.5

    • ubuntu下安装MySQLdb

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

        import MySQLdb
      
    • 创建数据库连接

        conn = MySQLdb.connect(host="localhost",user="root",passwd="123456",db="test",charset="utf8")
      
    • connect对象属性

      • commit():如果数据库表进行了修改,提交保存当前的数据。当然,如果此用户没有权限就作罢了,什么也不会发生。
      • rollback():如果有权限,就取消当前的操作,否则报错。
      • cursor([cursorclass]):游标指针。
    • 创建游标(指针)cursor

        cur = conn.cursor()
      
    • cursor执行命令的方法:

      • execute(query, args):执行单条sql语句。query为sql语句本身,args为参数值的列表。执行后返回值为受影响的行数。
      • executemany(query, args):执行单条sql语句,但是重复执行参数列表里的参数,返回值为受影响的行数
    • 在数据表中插入一条记录

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

        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()
      
    • 查询数据

        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条.

            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()    #再关闭数据库
  • 相关阅读:
    mock of python
    Linux系统有7个运行级别(runlevel)
    linux下gsoap的初次使用
    python的sitecustomize.py妙用
    blkid命令 获取文件系统类型、UUID
    linux的一些核心配置文件
    Linux网卡配置与绑定
    CentOS 5.4 制作 Python 2.6 RPM 包的方法
    学会理解并编辑fstab
    HTTP协议通信过程汇总
  • 原文地址:https://www.cnblogs.com/zfc2201/p/8169007.html
Copyright © 2011-2022 走看看