Python如何操作MySQL

发布时间:2019-10-08 20:16:07编辑:auto阅读(1823)

    安装Mysql和Navicat for MySQL

    mysql的安装图解https://jingyan.baidu.com/art...
    navicat for mysql破解可以看下这个文章https://www.cnblogs.com/da199...

    Python链接Mysql的增删改查

    通过Python提供的pymysql模块实现对mysql数据库的操作,这个地方注意python3.x使用的是pymysql,python2.x的话使用mysqldb模块
    安装pymysql模块:pip install PyMySQL
    import pymysql
      
    # 创建连接
    conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='123456', db='student')
    # 创建游标
    cursor = conn.cursor()
    
    # 修改----执行SQL,并返回受影响行数
    # effect_row = cursor.execute("update user set name=%s,pwd=%s where id=%s", ('aaa','bb', 1))
      
    # 添加----执行SQL,并返回受影响行数
    # cursor.execute("insert into user (name, pwd) values (%s,%s)", ("lidao","aaa"))
    # 查询----
    cursor.execute("select * from user")
    stus = cursor.fetchall()   
    for stu in stus:
            print("id:%d; name: %s; pwd: %s; " %(stu[0], stu[1], stu[2]))
    
    # 删除---执行SQL,并返回受影响行数
    cursor.execute("delete from user where id=%s", (2))
    
    # 提交,不然无法保存新建或者修改的数据
    conn.commit()
    #如果不加这个就手动添加autocommit=True 自动提交
    #db=pymysql.connect(host="127.0.0.1",port=3306,user="root",passwd="123456",db="school",charset="utf8",autocommit=True)
    
    
      
    # 关闭游标
    cursor.close()
    # 关闭连接
    conn.close()

    自己封装helper类

    import pymysql  
    
    class dbhelper():
        def __init__(self,host,port,user,passwd,db,charset="utf8"):
            self.host=host
            self.port=port
            self.user=user
            self.passwd=passwd
            self.db=db
            self.charset=charset
        #创建一个链接
        def connection(self):
            #1. 创建连接
            self.conn = pymysql.connect(host=self.host, port=self.port, user=self.user, passwd=self.passwd, db=self.db,charset=self.charset)
            #2. 创建游标
            self.cur = self.conn.cursor()
        #关闭链接
        def closeconnection(self):
            self.cur.close()
            self.conn.close()
        #查询一条数据
        def getonedata(self,sql):
            try:
                self.connection()
                self.cur.execute(sql)
                result=self.cur.fetchone()
                self.closeconnection()
            except Exception:
                print(Exception)    
            return result
        #查询多条数据    
        def getalldata(self,sql):
            try:
                self.connection()
                self.cur.execute(sql)
                result=self.cur.fetchall()
                self.closeconnection()
            except Exception:
                print(Exception)             
            return result
        #添加/修改/删除 
        def executedata(self,sql):
            try:
                self.connection()
                self.cur.execute(sql)
                self.conn.commit()
                self.closeconnection()
            except Exception:
                print(Exception)       
                  

    封装好了以后,后续用到mysql的操作的地方都可以直接使用,栗子如下:

    from mysqlhelper import *
    
    db=dbhelper(host='127.0.0.1', port=3306, user='root', passwd='123456', db='school',charset="utf8")
    result=db.getalldata("select * from class")
    print(result)

关键字