日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

python拼接sql语句_【Python】拼接MySQL常用语句

發布時間:2025/4/17 数据库 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python拼接sql语句_【Python】拼接MySQL常用语句 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

import pymysql

class MK_sql ():

"""

構建mySQL常見語句:增刪改查排序

"""

def __init__(self, table_name):

self.table_name = table_name

def mk_create(self, value: list):

"""

構建mySQL創建表語句

@param value: 字段列表

@return:

"""

if not isinstance (value, list):

raise Exception ("TypeError")

sql = "create table %s (%s)" % (self.table_name, self.to_str (value))

return sql

def mk_delete(self, condition: dict):

"""

構建mySQL刪除指定字段語句

@param condition: 刪除條件,dict型

@return:

"""

if not isinstance (condition, dict):

raise Exception ("TypeError")

sql = "delete from %s" % self.table_name

sql += " where %s " % self.to_str_and (condition)

return sql

def mk_insert(self, value: list):

"""

構建mySQL插入字段語句

@param value: 需插入的整行數據

@return:

"""

if not isinstance (value, list):

raise Exception ("TypeError")

sql = "insert into %s values " % self.table_name

sql += str (value)

return sql

def mk_update(self, value: dict, condition: dict):

"""

構建mySQL更新字段語句

@param value: dict 要更新的字段

@param condition: dict SQL條件語句

@return:

"""

if not isinstance (value, dict) or not isinstance (condition, dict):

raise Exception ("TypeError")

sql = "update %s set " % self.table_name

sql += self.to_str (value)

sql += " where %s " % self.to_str_and (condition)

return sql

def mk_select(self, cols=None, limit=None, distinct=False):

"""

構建mySQL select查詢語句

@param cols: list型,要查詢的字段名稱

@param limit: int型

@param distinct: bool型,True:去重,只作用于非全部查詢

@return:

"""

if (cols != None and not isinstance (cols, list)) or \

(limit !=None and not isinstance (limit, int)) or not isinstance(distinct,bool):

raise Exception ("TypeError")

if not limit:

if not cols:

sql = "select * from %s" % self.table_name

else:

if not distinct:

sql = "select %s from %s" % (self.to_str (cols), self.table_name)

else:

sql = "select distinct %s from %s" % (self.to_str (cols), self.table_name)

return sql

else:

if not isinstance (limit, int):

raise Exception ("TypeError")

if not cols:

sql = "select * from %s limit %s" % (self.table_name, limit)

else:

if not distinct:

sql = "select %s from %s limit %s" % (self.to_str (cols), self.table_name, limit)

else:

sql = "select distinct %s from %s limit %s" % (self.to_str (cols), self.table_name, limit)

return sql

def mk_order_by(self, value: list, asc=True):

"""

構建mySQL排序語句

@param value: 單個字段或多個字段

@param asc: 默認為True升序,FALSE為降序

@return:

"""

if not isinstance (value, list) or not isinstance(asc,bool):

raise Exception ("TypeError")

if asc:

sql = "order by %s from %s" % (self.to_str (value), self.table_name)

else:

sql = "order by %s from %s desc" % (self.to_str (value), self.table_name)

return sql

def to_str_and(self, value: dict):

"""

內部函數,用于轉換mySQL帶and條件語句

@param value:dict型

@return: [key='value' and key='value' and...]

"""

info_list = ["%s='%s'" % (str (k), str (v)) for k, v in value.items ()]

return " and ".join (info_list)

def to_str(self, value):

"""

內部函數,轉換成SQL指定的str格式

@param value: list/dict

@return: 1、list參數不帶引號的str,2、dict參數返回[key='value', key='value'...]

"""

if isinstance (value, list):

cnt = ["%s" % value for value in value]

return ",".join ((cnt))

elif isinstance (value, dict):

cnt = ["%s='%s'" % (str (k), str (v)) for k, v in value.items ()]

return ",".join (cnt)

總結

以上是生活随笔為你收集整理的python拼接sql语句_【Python】拼接MySQL常用语句的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。