• pymysql操作mysql数据库


    1.建库

    import pymysql
    # 建库
    try:
        conn=pymysql.connect(
            host='127.0.0.1',
            port=3306,
            user='root',
            passwd='123456',
        )
        cur=conn.cursor()
        create_database_sql='CREATE DATABASE IF NOT EXISTS py3_tstgr DEFAULT CHARSET utf8 COLLATE utf8_general_ci;'
        cur.execute(create_database_sql)
        cur.close()
        print('创建数据库 py3_tstgr 成功!')
    except pymysql.Error as e:
        print('pymysql.Error: ',e.args[0],e.args[1])

    2.建表

    import pymysql
    # 建表
    try:
        conn=pymysql.connect(
            host='127.0.0.1',
            port=3306,
            user='root',
            passwd='123456',
            db='py3_tstgr',
            charset='utf8'
        )
        cur=conn.cursor()
        cur.execute('drop table if exists user;')
        create_table_sql='''
            CREATE TABLE user(
                id int(11) DEFAULT NULL ,
                name VARCHAR(50) DEFAULT NULL ,
                password VARCHAR(30) DEFAULT NULL ,
                birthday TIMESTAMP DEFAULT now() 
            )engine=innodb DEFAULT CHARACTER set utf8;
        '''
        cur.execute(create_table_sql)
        print('创建数据库表成功!')
    except pymysql.Error as e:
        print('mysql.Error: ',e.args[0],e.args[1]) 

    3.增、改、删、查数据操作

    import pymysql
    # 数据库操作
    # 连接
    def db_conn(host,port,user,passwd,db_name):
        try:
            conn=pymysql.connect(
                host=host,
                port=port,
                user=user',
                passwd=password,
                db=db_name,
                charset='utf8',
            )
            # cur=conn.cursor()
            print('数据库连接成功!')
            # 返回连接
            return conn
        except pymysql.Error as e:
            print('数据库连接失败')
            print('mysql.Error: ',e.args[0],e.args[1])
    
    def db_cur(conn):
        # 获取游标
        cur=conn.cursor()
        return cur
    
    def db_close(cur,conn):
        # 游标关闭
        cur.close()
        # 提交事务
        conn.commit()
        # 连接关闭
        conn.close()
    
    # 插入单行数据
    def db_insert_data(sql,cur,*args):
        try:
            # print(args)
            result=cur.execute(sql,args)
            print('添加语句受影响的行数:',result)
        except Exception as e:
            print('db_insert_data error: ',e.args)
    
    # 批量插入数据
    def db_insert_datas(sql,cur,list_datas):
        try:
            result=cur.executemany(sql,list_datas)
            print('批量插入受影响的行数:',result)
        except Exception as e:
            print('db_insert_datas error: ',e.args)
    
    # 修改单行数据
    def db_update(sql,cur):
        result=cur.execute(sql)
        print('修改语句受影响的行数:',result)
    
    # 批量修改数据
    def db_update_datas(sql,cur,list_datas):
        try:
            result=cur.executemany(sql,list_datas)
            print('批量修改受影响的行数:',result)
        except Exception as e:
            print('db_update_datas error: ',e.args)
    
    # 删除单行数据
    def db_delete_data(sql,cur):
        result=cur.execute(sql)
        print('删除语句受影响的行数:',result)
    
    # 批量删除数据
    def db_delete_datas(sql,cur,list_datas):
        try:
            result=cur.executemany(sql,list_datas)
            print('批量删除受影响的行数:',result)
        except Exception as e:
            print('db_delete_datas error: ',e.args)
    
    # 回滚
    def roll_back(conn):
        try:
            conn.rollback()
            print('回滚完成!')
        except Exception as e:
            print('rollback error: ',e.args)
    
    def db_select_data(sql,cur):
        result=cur.execute(sql)
        print('查询语句受影响的行数:',result)
    
    def db_select_datas(sql,cur,list_datas):
        try:
            result=cur.executemany(sql,list_datas)
            print('批量查询受影响的行数:',result)
        except Exception as e:
            print('db_select_datas error: ',e.args)
    
    if __name__=="__main__":
    
        host='127.0.0.1'
        port=3306
        user='root'
        passwd='123456'
        db='py3_tstgr'
        conn=db_conn(host,port,user,passwd,db)
        print(conn)
        cur=db_cur(conn)
        print(cur)
        
        insert_sql="insert into user values(1,'tom','123','1990-01-01');"
        db_insert_data(insert_sql,cur)
    
        insert_sql2="insert into user values(%s,%s,%s,%s);"
        db_insert_data(insert_sql2,cur,2,'lucy','aaa','1991-02-02')
        
        insert_datas_sql="insert into user values(%s,%s,%s,%s);"
        list_datas=[(2,'ha2','222','1992-02-02'),(3,'ha3','333','1993-03-03'),(4,'ha4','444','1994-04-04')]
        db_insert_datas(insert_datas_sql,cur,list_datas)
        
        # 查询数据
        sql="select * from user;"
        cur.execute(sql)
        res1=cur.fetchone()   # 获取一行数据
        print(res1)
        res2=cur.fetchmany(2)  #获取多行数据
        print(res2)
        res3=cur.fetchall()  # 获取所有数据
        print(res3)
        print(cur.fetchone())  # None
        # 重置游标
        cur.scroll(1,mode='relative')
        print(cur.fetchone())
        
        # 更新数据
        up_sql="update user set name='lala' where password='123';"
        db_update(up_sql,cur)
        
        # 批量更新数据
        up_sqls="update user set name=%s where password=%s;"
        up_datas=[('lw','123'),('lc','aaa')]
        db_update_datas(up_sqls,cur,up_datas)
        
        # 删除数据
        delete_sql="delete from user where name='lw';"
        db_delete_data(delete_sql,cur)
        
        delete_sqls="delete from user where name=%s;"
        db_delete_datas(delete_sqls,cur,[('lc'),('hah2'),('hah3')])
    
        # print(cur.rownumber)  # 0 获取所在行号
    
        # cur.scroll(0,mode='absolute')
        # cur.execute('select * from user;')
    
        select_sql="select * from user;"
        db_select_data(select_sql,cur)
        print(cur.fetchall())
        
    
        # roll_back(conn)  # 回滚
        # print(cur.rownumber)
        # cur.scroll(0, mode='absolute')
        # cur.execute('select * from user;')
    
        # 查询单行
        select_sql = "select * from user;"
        db_select_data(select_sql, cur)
        
        # 批量查询
        select_sqls="select * from user where name=%s;"
        db_select_datas(select_sqls,cur,[('ha1'),('ha2'),('ha3')])
        print(cur.fetchall())
    
        db_close(cur,conn)  # 断开连接
  • 相关阅读:
    框架-Eureka:百科
    发布机制-灰度发布-例子:Windows
    发布机制-灰度发布-例子:QZone
    发布机制-灰度发布-例子:Gmail Labs
    发布机制:金丝雀发布、滚动发布、蓝绿发布到底有什么差别?关键点是什么?
    发布机制:金丝雀发布、滚动发布、蓝绿发布到底有什么差别?关键点是什么?2
    发布机制-影子测试:百科
    再探“指针”奥秘--换个角度看“指针”!
    uva 11646
    S3C2410 实验三——跑马灯实验
  • 原文地址:https://www.cnblogs.com/reyinever/p/10869434.html
Copyright © 2020-2023  润新知