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常用语句相关推荐

  1. mysql 查询和修改组合_## 超详细MySQL常用语句,增删查改

    ## MySQL常用语句,增删查改,安装配置mysql服务 ***#新手博客,应届生,谢谢支持哟 记得点赞关注哟*** ***-----sql常见命令:--------*** 安装服务:mysqld ...

  2. mysql 语句块语法_MySQL ------ MySQL常用语句的语法 (三十四)

    MySQL常用的语句语法 注意:1. | 符号用来指出几个选中中的一个,因此NULL | NOT NULL 表示给出null 或 not null 2.包含在方括号中的关键字或子句是可选的(如 [li ...

  3. insert 语句_[原理解析] MySQL insert语句的磁盘写入之旅

    一条insert语句在写入磁盘的过程中到底涉及了哪些文件,顺序又是如何的?下面我们用两张图和大家一起解析insert语句的磁盘写入之旅. 图1: 事务提交前的日志文件写入 旅途过程: 首先 inser ...

  4. select计数语句_从零开始学 MySQL SELECT 语句详解

    阅读本文大概需要 7 分钟 前言上篇文章我们学习了 MySQL 的五种约束,今天这篇文章我们来学习下 SELECT 语句.在数据库操作语句中,使用最频繁,也被认为最重要的是 SELECT 查询语句.在 ...

  5. 结构化查询语句简称mysql_整理MySql常用查询语句

    MySql的性能优化 性能优化是通过某些有效的方法提高MySQL数据库的性能.性能优化的目的是为了是MySQL数据运行速度更快.占用的磁盘空间更小.性能优化包括很多方面,例如优化查询速度.优化更新速度 ...

  6. Mysql常用语句帅哥特供版

    [TOC] Mysql常用语句帅哥特供版 没错,这里的帅哥指的就是我自己 limit命令 查询 # limit命令 有两个参数, 第一个代表起始,从第几条开始. 第二个代表步长,取多少条. # 但是部 ...

  7. MYSQL常用语句及练习

    一.mysql常用语句 创建,删除和最基本查询: 显示数据库     mysql->show databases; 创建数据库     mysql->create database db; ...

  8. MySQL常用语句(CURD)

    文章目录 一.数据库定义语言(DDL) 1.1 库操作 1.2 表操作 二.数据库操纵语言(DML) 2.1 插入 insert 2.2 修改 update 2.3 删除 delete 三.数据库查询 ...

  9. Mysql常用语句,供小白学习使用

    Mysql常用语句 一.Mysql最常用的命令 一.库的基本操作 二.表的基本操作 一.Mysql最常用的命令 1.显示数据库列表: show databases;2.显示库中的数据表: show t ...

  10. Oracle数据库数据查询语句示例(包含大部分常用语句)

    Oracle数据库数据查询语句示例(包含大部分常用语句) 目标 本文用到的关系模式 语句示例 1.在创建的s,p,j和spj表中完成以下查询 (1)查询零件重量在10-20之间(包括10和20)的零件 ...

最新文章

  1. 裸眼3D全攻略3:拍摄3D—瞳距、镜距、视角偏转与空间感
  2. java 窗体 源码_Java制作MDI窗体源代码
  3. 【Elasticsearch】实施现代电子商务搜索
  4. 连接oracle报错:Invalid connection string format, a valid format is: host:port:sid
  5. r roc曲线 语言_R语言系列6:生存分析中多重时间依赖性ROC曲线绘制 timeROC
  6. su root 后还是不能使用useradd ,useradd 等命令
  7. git代码库迁移保留commit历史_如何把git仓库(包含所有提交历史)迁移到gitlab
  8. Android多媒体开发(3)————使用Android NKD编译havlenapetr-FFMpeg-7c27aa2
  9. 商城系统 DBShop V3.0 Beta 发布
  10. VS code open in browser无法打开chrome浏览器的解决办法
  11. 盘点时间管理方面的一些方法及工具
  12. 无法忘却的旋律:《荷东》、《猛士》各专辑的曲目列表
  13. VC++信息安全编程(14)PNP溢出代码漏洞扫描检测
  14. 三角函数诱导公式一:奇变偶不变,符号看象限
  15. oracle导入文件命令行,Oracle命令行导入dmp文件
  16. 【Python实战项目】做一个 刮刮乐 案例,一不小心....着实惊艳到我了。
  17. Linux操纵细碎以太网卡的装配及设置-2
  18. 天梯赛HBU训练营——链表去重 (25分)(测试点2和段错误解决)
  19. 镜像翻转_【资讯】装动镜世界版假面骑士时王登场,镜像翻转也算新规?
  20. [原创插件] [服务端插件] [新手开发者必看]优秀插件开发教程列表 欢迎回复讨论

热门文章

  1. Java并发教程(Oracle官方资料)
  2. PHP内核探索:Zend引擎
  3. PHPCMS V9自定义分页函数
  4. sdwan安全如何加固?六种安全SD-WAN方案分享
  5. sdwan能取代mpls吗?—Vecloud
  6. Flask项目支持https
  7. 创建一个dynamics CRM workflow (三) - Creating Configuration Entity for Custom Workflow
  8. poj3050【dfs】
  9. Java中的简单浮点数类型float和double不能够进行精确运算
  10. 65条最常用正则表达式