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常用语句相关推荐
- mysql 查询和修改组合_## 超详细MySQL常用语句,增删查改
## MySQL常用语句,增删查改,安装配置mysql服务 ***#新手博客,应届生,谢谢支持哟 记得点赞关注哟*** ***-----sql常见命令:--------*** 安装服务:mysqld ...
- mysql 语句块语法_MySQL ------ MySQL常用语句的语法 (三十四)
MySQL常用的语句语法 注意:1. | 符号用来指出几个选中中的一个,因此NULL | NOT NULL 表示给出null 或 not null 2.包含在方括号中的关键字或子句是可选的(如 [li ...
- insert 语句_[原理解析] MySQL insert语句的磁盘写入之旅
一条insert语句在写入磁盘的过程中到底涉及了哪些文件,顺序又是如何的?下面我们用两张图和大家一起解析insert语句的磁盘写入之旅. 图1: 事务提交前的日志文件写入 旅途过程: 首先 inser ...
- select计数语句_从零开始学 MySQL SELECT 语句详解
阅读本文大概需要 7 分钟 前言上篇文章我们学习了 MySQL 的五种约束,今天这篇文章我们来学习下 SELECT 语句.在数据库操作语句中,使用最频繁,也被认为最重要的是 SELECT 查询语句.在 ...
- 结构化查询语句简称mysql_整理MySql常用查询语句
MySql的性能优化 性能优化是通过某些有效的方法提高MySQL数据库的性能.性能优化的目的是为了是MySQL数据运行速度更快.占用的磁盘空间更小.性能优化包括很多方面,例如优化查询速度.优化更新速度 ...
- Mysql常用语句帅哥特供版
[TOC] Mysql常用语句帅哥特供版 没错,这里的帅哥指的就是我自己 limit命令 查询 # limit命令 有两个参数, 第一个代表起始,从第几条开始. 第二个代表步长,取多少条. # 但是部 ...
- MYSQL常用语句及练习
一.mysql常用语句 创建,删除和最基本查询: 显示数据库 mysql->show databases; 创建数据库 mysql->create database db; ...
- MySQL常用语句(CURD)
文章目录 一.数据库定义语言(DDL) 1.1 库操作 1.2 表操作 二.数据库操纵语言(DML) 2.1 插入 insert 2.2 修改 update 2.3 删除 delete 三.数据库查询 ...
- Mysql常用语句,供小白学习使用
Mysql常用语句 一.Mysql最常用的命令 一.库的基本操作 二.表的基本操作 一.Mysql最常用的命令 1.显示数据库列表: show databases;2.显示库中的数据表: show t ...
- Oracle数据库数据查询语句示例(包含大部分常用语句)
Oracle数据库数据查询语句示例(包含大部分常用语句) 目标 本文用到的关系模式 语句示例 1.在创建的s,p,j和spj表中完成以下查询 (1)查询零件重量在10-20之间(包括10和20)的零件 ...
最新文章
- 裸眼3D全攻略3:拍摄3D—瞳距、镜距、视角偏转与空间感
- java 窗体 源码_Java制作MDI窗体源代码
- 【Elasticsearch】实施现代电子商务搜索
- 连接oracle报错:Invalid connection string format, a valid format is: host:port:sid
- r roc曲线 语言_R语言系列6:生存分析中多重时间依赖性ROC曲线绘制 timeROC
- su root 后还是不能使用useradd ,useradd 等命令
- git代码库迁移保留commit历史_如何把git仓库(包含所有提交历史)迁移到gitlab
- Android多媒体开发(3)————使用Android NKD编译havlenapetr-FFMpeg-7c27aa2
- 商城系统 DBShop V3.0 Beta 发布
- VS code open in browser无法打开chrome浏览器的解决办法
- 盘点时间管理方面的一些方法及工具
- 无法忘却的旋律:《荷东》、《猛士》各专辑的曲目列表
- VC++信息安全编程(14)PNP溢出代码漏洞扫描检测
- 三角函数诱导公式一:奇变偶不变,符号看象限
- oracle导入文件命令行,Oracle命令行导入dmp文件
- 【Python实战项目】做一个 刮刮乐 案例,一不小心....着实惊艳到我了。
- Linux操纵细碎以太网卡的装配及设置-2
- 天梯赛HBU训练营——链表去重 (25分)(测试点2和段错误解决)
- 镜像翻转_【资讯】装动镜世界版假面骑士时王登场,镜像翻转也算新规?
- [原创插件] [服务端插件] [新手开发者必看]优秀插件开发教程列表 欢迎回复讨论