python pymysql使用

发布时间 2023-09-09 14:51:31作者: 公子Learningcarer

 

 

 

def marketing_sql(sql_instruct: str = ""):
    """数据库添加身份认证"""
    logs = log_message('marketing数据库')
    try:

        # 连接数据库
        iden_sql = pymysql.connect(host="10.100.151.202",
            port=4000,
            user='u_pd_',账号
            passwd="M6te",密码
            db='123')库名
        # 收发指令
        cursor = iden_sql.cursor(cursor=pymysql.cursors.DictCursor)
        time.sleep(1)
        # 2.发送指令
        sql = sql_instruct
        cursor.execute(sql)
        data_list = cursor.fetchone()  # 查询一条数据,如果为空返回就是None
        result = cursor.fetchall() # 记录查询结果,如果是空返回就是空元组()
        # # 存储本次指令查出的内容
        # instruct_list = []
        # for row_dict in data_list:
        #     instruct_list.append(row_dict)
        # 3.关闭sql链接
        cursor.close()
        iden_sql.close()
        return data_list
    except Exception as e:
        logs.logger.error('数据库异常,sql语句:{},结果为:{}'.format(sql, str(e)))
        return {'sql语句':sql,'exception':str(e)}

1、通过python实现mysql数据库的查询。mysql数据库的查询可以分为两种,一种可以对数据库某个表内的数据进行查询,一种可以对数据表内的特定数据进行查询。
第一种:对数据表内的所有数据进行查询,查询显示结果是一个元组tuple。代码演示如下

def query1(sql):
    """
    不带参数查询
    :param sql:
    :return:
    """
    db = open()
    cursor = db.cursor()  # 使用cursor()方法获取游标
    cursor.execute(sql)  # 执行sql查询语句
    result = cursor.fetchall()  # 记录查询结果
    cursor.close()  # 关闭游标
    db.close()  # 关闭数据库连接
    return result  # 返回查询结果
if __name__ == "__main__":
    try:
        sql2 = "select * from user_info"
        tuple = query1(sql2)
        print(tuple)
        for index in range(len(tuple)):
            temp_dict = dict()
            temp_dict["userName"] = tuple[index][0]
            temp_dict["userPwd"] = tuple[index][1]
            all_user_info.append(temp_dict)
        print(all_user_info)
    except:
        print("数据读取错误!")

第二种:对数据内特定的数据进行查询。查询结果是元组tuple。代码演示如下:

def query(sql, *keys):
    """
    带参数查询数据库数据
    :return:
    """
    db = open()  # 连接数据库
    cursor = db.cursor()  # 使用cursor()方法获取操作游标
    cursor.execute(sql, keys)  # 执行查询sql 语句
    result = cursor.fetchall()  # 记录查询结果
    cursor.close()  # 关闭游标
    db.close()  # 关闭数据库连接
    return result  # 返回查询结果

if __name__ == "__main__":
    try:
        sql = "select * from user_info where userName=%s and userPwd=%s"
        val = ("bob", "bob")
        tuple = query(sql)
        print(tuple)
        for index in range(len(tuple)):
            temp_dict = dict()
            temp_dict["userName"] = tuple[index][0]
            temp_dict["userPwd"] = tuple[index][1]
            all_user_info.append(temp_dict)
        print(all_user_info)
    except:
        print("数据读取错误!")

2、通过python实现单条数据的添加。代码演示如下:

def insert(sql, values):
    """
    向数据库插入数据,插入的values是一个tuple
    :param sql: 运行sql插入语句
    :return: 返回插入结果
    """
    db = open()  # 打开数据库连接
    cursor = db.cursor()  # 使用cursor()方法获取游标
    cursor.execute(sql, values)
    db.commit()
    cursor.close()
    db.close()
    return cursor.rowcount

if __name__ == "__main__":
    try:
        sql1 = "insert into user_info (userName,userPwd) values (%s,%s)"
        val = ("bob", "bob")
        print(insert(sql,val),"条数据添加成功")
    except:
        print("数据操作错误!")

3、通过python实现多条数据批量添加到数据库中,使用executemany()方法,添加的元素必须是一个list集合中的元素。代码演示如下:

def insert(sql, values):
    """
    向数据库插入数据,插入的values是一个tuple
    :param sql: 运行sql插入语句
    :return: 返回插入结果
    """
    db = open()  # 打开数据库连接
    cursor = db.cursor()  # 使用cursor()方法获取游标
    cursor.executemany(sql, values)
    db.commit()
    cursor.close()
    db.close()
    return cursor.rowcount

if __name__ == "__main__":
    try:
        sql1 = "insert into user_info (userName,userPwd) values (%s,%s)"
        val = [("bob", "bob"),("tom", "tom")]
        print(insert(sql,val),"条数据添加成功")
    except:
        print("数据操作错误!")

4、通过python实现mysql数据数据的删除。代码演示如下

def delete(sql, values):
    """
    删除数据库数据
    :param sql:
    :return:
    """
    db = open()  # 打开数据库连接
    cursor = db.cursor()  # 使用cursor()方法获取游标
    cursor.execute(sql, values)
    db.commit()  # 执行修改
    cursor.close()
    db.close()
    return cursor.rowcount

if __name__ == "__main__":
    try:
       sql_del = "delete from user_info where userName = %s"
        keys = "test"
        print(delete(sql_del, keys),"条数据删除成功!")
    except:
        print("数据读取错误!")

5、通过python实现数据库库表内数据更新。代码演示如下:

def update(sql, values):
    """
    更新数据库数据
    :param sql:
    :param values:
    :return:
    """
    db = open()  # 打开数据库连接
    cursor = db.cursor()  # 使用cursor()方法获取游标
    cursor.execute(sql, values)  # 执行sql数据修改语句
    db.commit()  # 提交数据
    cursor.close()  # 关闭游标
    db.close()  # 关闭数据库连接
    return cursor.rowcount


if __name__ == "__main__":
    try:
        sql_update = "update user_info set userName = %s where userPwd=%s"
        val = ('test', '123456')
        print(update(sql_update, val), "条数据被修改!")
    except:
        print("数据读取错误!")