mysql inser into select 性能_python操作mysql简单明了的类

简道云结合mysql,能够实现更多的和更为强大的功能。

  1. 在mysql中对简道云一些关键表单做备份,一般访问mysql数据。提升运行速度。

  2. 规避简道云对API访问频率的限制。

前段时间,读懂并学会了简道云增删改查的类的运用。趁着国庆假日,又读懂学会了mysql增删改查的类的运用。会让API的书写变得非常简单,根据网上学习的内容,我又做了一些修改和完善,给大家分享。

import pymysql'''这个是调试比较完整的mysql操作语句,整体来说,比较容易明白,容易操作'''class MySQLUtil():    def __init__(self, host, username, password, port, datebase):        self.host = host        self.username = username        self.password = password        self.port = port        self.datebase = datebase        self.conn = None  # 连接conn        self.cursor = None  # 游标    def conetion_db(self):        # 创建连接        self.conn = pymysql.connect(host=self.host, user=self.username, password=self.password, port=self.port,                                    db=self.datebase, charset='utf8')  # 创建连接    def get_cursor(self):        '''获取游标'''        self.cursor = self.conn.cursor()        return self.cursor    def close_db(self):        '''关闭连接'''        self.cursor.close()        self.conn.close()    def create_table(self,sql):        '''创建数据表'''        try:            self.conetion_db()            self.get_cursor().execute(sql)            self.conn.commit()            self.close_db()        except Exception as e:            print(e)    def insert(self, sql, *value):        '''        插入数据        :param table:        :param insert data:        :return:        '''        #开启连接        self.conetion_db()        n = self.get_cursor().execute(sql,*value)        #关闭资源        self.conn.commit()        self.close_db()        return n    def inser_many(self, sql, params):        '''        批量插入数据        :param sql:    插入数据模版, 需要指定列和可替换字符串个数        :param params:  插入所需数据,列表嵌套元组[(1, '张三', '男'),(2, '李四', '女'),]        :return:    影响行数        '''        try:            # sql = "INSERT INTO USER VALUES (%s,%s,%s)"  # insert 模版            # params = [(2, 'fighter01', 'admin', 'sanpang'),            #           (3, 'fighter02', 'admin', 'sanpang')]  # insert数据,            self.conetion_db()            self.get_cursor().executemany(sql,params)            self.conn.commit() #提交请求,否则数据是不会写入数据库里            # 关闭数据库连接        except BaseException as f:            print(f)            self.conn.rollback()        print(self.cursor.rowcount)        return self.cursor.rowcount    def select_one(self,sql,*value):        '''        查询一条数据        :param sql:        :param value:        :return:        '''        self.conetion_db()        cursor = self.get_cursor()        cursor.execute(sql,*value)        result = cursor.fetchone()        self.close_db()        return result    def select_list(self,sql,*value):        '''        查询多条数据        :param sql:        :param value:        :return:        '''        self.conetion_db()        cursor = self.get_cursor()        cursor.execute(sql,*value)        result = cursor.fetchall()        self.close_db()        return result    def update(self,sql,*value):        '''        修改        :param sql:        :param value:        :return:        '''        self.conetion_db()        n = self.get_cursor().execute(sql,*value)        self.conn.commit()        self.close_db()        return n    def delete(self,sql,*value):        '''        删除        :param sql:        :param value:        :return:        '''        self.conetion_db()        n = self.get_cursor().execute(sql,*value)        self.conn.commit()        self.close_db()        return n #这里的n指的是数据条数if __name__ == "__main__":    util = MySQLUtil(host='127.0.0.1', username='root', password='123456', port=3306, datebase='test')    #插入操作    print('插入操作')    sql = "INSERT INTO student VALUES (%s,%s,%s)"    params = ('男', '2', '王五')    util.insert(sql, params)    #插入多条数据    print('插入多条数据')    sql = "INSERT INTO student VALUES (%s,%s,%s)"    params = [('男', '2', '王五'),('男', '2', '王三')]    util.inser_many(sql, params)    #更新操作    print('更新数据')    sql="UPDATE student SET gender=%s, class_id=%s WHERE stu_name=%s"    params=('女','5','王五')    util.update(sql, params)    #查询一条数据    print('查询一条数据')    print(util.select_one("SELECT * FROM student WHERE class_id=%s",'5'))    #查询多条数据    print('查询多条数据')    print(util.select_list("SELECT * FROM student WHERE class_id=%s", '5'))    #删除数据    print('删除数据')    print(util.delete("DELETE FROM student WHERE stu_name=%s",('王五')))    #创建表    print('创建表')    util.create_table('create table user (id varchar(20) primary key, name varchar(20))')

这是运行的结果

7016ad8ea628e1a85dcc1d37cbcec66e.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值