python基础之操作MySQL数据库

工作需要操作MySQL数据库,使用pymysql库,有些操作上不习惯的地方做了些修改。比如查询的时候结果不能按字段名读取数据等。以下是代码。

首先是引入库、引入random和string主要是为了生成id。

复制代码
import pymysql
import random
import string

创建数据库链接对象

复制代码
def mysqlconnect():
    # 连接数据库
    host = '192.168.1.1
    port = 3306
    user = 'root'
    password = 'root'
    database = 'ceshi_table'
    conn = pymysql.connect(host=host, port=port, user=user, password=password, database=database)
    cursor = conn.cursor()
    return cursor,conn

一、查询方法

复制代码
def selectdata(sql_query):
    cursor,conn = mysqlconnect()

    # 执行SQL查询语句
    cursor.execute(sql_query)

    # 获取查询结果
    results = cursor.fetchall()

    # 查询
    column_names = [desc[0] for desc in cursor.description]
    data = []
    for row in results:
        name_value = {}
        for column_name in column_names:
            name_value[column_name] = row[column_names.index(column_name)]
        data.append(name_value)

    # 关闭游标和连接
    cursor.close()
    conn.close()

    if len(data) == 1:
        return data[0]
    else:
        return data

调用

复制代码
sql_query = "SELECT * FROM data_table"
results = selectdata(sql_query)
print(results)

二、添加数据方法

复制代码
def insertdata(insertsql,values):
    cursor,conn = mysqlconnect()
    try:
        if type(values) == list:
            cursor.executemany(insertsql, values)

        if type(values) == tuple:
            cursor.execute(insertsql, values)

        conn.commit()
    except Exception as e:
        print(f"数据插入失败:{e}")
        conn.rollback()

    # 关闭游标和连接
    cursor.close()
    conn.close()

调用

复制代码
insertsql = "insert into data_table (id,warning_type,customer,license,tel) values (%s,%s,%s,%s,%s)"
values = [('123133', '123123','城区据','第一市场队'),
('123125', '123123','城区据','第一市场队'),
('123178', '123123','城区据','第一市场队')]
# values = ('123127', '123123','城区据','第一市场队')
insertdata(insertsql,values)

三、更新数据方法

复制代码
def updatedata(update_sql,values):
    cursor,conn = mysqlconnect()
    try:
        cursor.execute(update_sql, values)
        conn.commit()
    except Exception as e:
        print(f"数据更新失败:{e}")
        conn.rollback()

    # 关闭游标和连接
    cursor.close()
    conn.close()

调用

复制代码
update_sql = "UPDATE data_table SET area_name=%s,squadron_code=%s WHERE id=%s"
values = ('new_value1', 'condition_value','123123')
updatedata(update_sql,values)

四、删除数据方法

复制代码
def deledata(delete_sql,delevalue):
    cursor, conn = mysqlconnect()
    try:
        cursor.execute(delete_sql, delevalue)
        conn.commit()
    except Exception as e:
        print(f"数据删除失败:{e}")
        conn.rollback()

    # 关闭游标和连接
    cursor.close()
    conn.close()

调用

复制代码
delete_sql = "DELETE FROM data_table WHERE id=%s"
values = ('123123')
deledata(delete_sql,values)

五、最后还有个生成随机字符串id的方法

复制代码
def generate_random_string(length):
    characters = string.ascii_letters + string.digits  # 包含所有大小写字母和数字
    random_string = ''.join(random.choice(characters) for _ in range(length))
    return random_string

ok,完毕!!

相关推荐
c***871941 分钟前
Flask:后端框架使用
后端·python·flask
Q_Q5110082852 小时前
python+django/flask的情绪宣泄系统
spring boot·python·pycharm·django·flask·node.js·php
撸码猿2 小时前
《Python AI入门》第9章 让机器读懂文字——NLP基础与情感分析实战
人工智能·python·自然语言处理
二川bro2 小时前
多模态AI开发:Python实现跨模态学习
人工智能·python·学习
2301_764441332 小时前
Python构建输入法应用
开发语言·python·算法
love530love2 小时前
【笔记】ComfUI RIFEInterpolation 节点缺失问题(cupy CUDA 安装)解决方案
人工智能·windows·笔记·python·插件·comfyui
青瓷程序设计2 小时前
昆虫识别系统【最新版】Python+TensorFlow+Vue3+Django+人工智能+深度学习+卷积神经网络算法
人工智能·python·深度学习
秋邱3 小时前
智启未来:AGI 教育融合 × 跨平台联盟 × 个性化空间,重构教育 AI 新范式开篇:一场 “教育 ×AI” 的范式革命
人工智能·python·重构·推荐算法·agi
爱吃泡芙的小白白3 小时前
vscode、anaconda、git、python配置安装(自用)
ide·git·vscode·python·anaconda·学习记录
谷隐凡二3 小时前
Kubernetes主从架构简单解析:基于Python的模拟实现
python·架构·kubernetes