工作需要操作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)
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,完毕!!