记一些Python(Pymysql)建表、增删改查等基础操作(小白适用)
1、读取sql文件创建数据表
有一个形如下图的sql文件,使用python读取文件并在数据库中创建所有的表。
很多人学习python,不知道从何学起。
很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。
很多已经做案例的人,却不知道如何去学习更加高深的知识。
那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码!
QQ群:101677771

代码是很久以前搬的,忘了出处了> <,输入sql文件名称和数据库名称即可创建,执行成功或失败时都会有打印哪条sql语句执行成功或失败
import pymysql
def CreateTables(document,database):
try:
db = pymysql.connect(host='localhost', user='root', password='123', database=database, charset='utf8')
cursor = db.cursor()
with open(document,encoding='utf-8',mode = 'r') as f:
sql_list = f.read().split(';')[:-1]
for x in sql_list:
if '\n' in x:
x= x.replace('\n',' ')
if ' ' in x:
x= x.replace(' ',' ')
sql_item = x+';'
cursor.execute(sql_item)
print("执行成功sql:%s"%sql_item)
except Exception as e:
print(e)
print('执行失败sql:%s'%sql_item)
finally:
cursor.close()
db.commit()
db.close()
2、增删改查
假设如上面sql文件里的table_1,想在数据库中创建一个这样的表
| Id | Name | Type |
|---|---|---|
| 213 | 亚索 | 中单 |
| 443 | 薇恩 | ADC |
| 4396 | 李青 | 打野 |
则在python中创建一个形如dict = {"Id":213,"Name":亚索,"Type":"中单"}的字典,并将每列数据放入一个list中,即list = [{"Id":213,"Name":亚索,"Type":"中单"},{"Id":443,"Name":薇恩,"Type":"ADC"},{"Id":4396,"Name":李青,"Type":"打野"}],遍历该字典插入数据
import pymysql
lists = [{"Id":213,"Name":亚索,"Type":"中单"},{"Id":443,"Name":薇恩,"Type":"ADC"},{"Id":4396,"Name":李青,"Type":"打野"}]
table = 'table_1'
name = '亚索'
db = pymysql.connect(host='localhost', user='root', password='123', database='test', charset='utf8')
cursor = db.cursor()
#增
for lis in lists:
keys = ','.join(lis.keys())
values = ','.join(['%s'] * len(lis))
sql = 'INSERT INTO {table} ({keys}) VALUES ({values})'.format(table=table, keys=keys, values=values)
cursor.execute(sql, tuple(lis.values()))
#删
sql = "DELETE FROM talbe_1 WHERE Name = '%s'"%name
cursor.execute(sql)
#改
sql = "UPDATE table_1 SET id = 666 WHERE Name = '%s'"%name
cursor.execute(sql)
#查
sql = "SELECT * FROM table_1"
cursor.execute(sql)
res = cursor.fetchall()
cursor.close()
db.commit()
db.close()
3、自增序号从当前最大值开始连续
如table_3的nId为自增序号,假设表中有1,2,3…48条数据,再删除了45,46,47,48后,新增数据依旧会从49开始编号造成不连续,为了让它连续的继续从45开始编号,应添加下列代码
sql = 'ALTER TABLE table_3 auto_increment = 1'
cursor.execute(sql)
记一些Python(Pymysql)建表、增删改查等基础操作(小白适用)的更多相关文章
- Python之注册表增删改查(干货)
在Windows平台下,对注册表的增删改查的需求比较多,微软提供了很多用于访问,修改注册表等的API,我们可以使用诸如bat,或者C++等各种方式去访问修改注册表.无所不能的python下如何完成这些 ...
- 2018.8.1 python中字典的增删改查及其它操作
一.字典的简单介绍 1.dict 用{}来表示 键值对数据 {key:value} 唯一性 2.键都必须是可哈希,不可变的数据类型就可以当做字典中的键 值没有任何限制 ...
- Django框架(八)--单表增删改查,在Python脚本中调用Django环境
一.数据库连接配置 如果连接的是pycharm默认的Sqlite,不用改动,使用默认配置即可 如果连接mysql,需要在配置文件中的setting中进行配置: 将DATABASES={} 更新为 DA ...
- Django框架(九)—— 单表增删改查,在Python脚本中调用Django环境
目录 单表增删改查,在Python脚本中调用Django环境 一.数据库连接配置 二.orm创建表和字段 三.单表增删改查 1.增加数据 2.删除数据 3.修改数据 4.查询数据 四.在Python脚 ...
- 基于pymysql模块的增删改查
上课笔记 重点:(熟练)多表查询创建存储过程原生sql索引原理 pymysql 封装好的客户端cursor 底层就是一个send操作commit 告诉mysql真的要完成修改操作(不然修改不会生效)e ...
- GZFramwork数据库层《四》单据主从表增删改查
同GZFramwork数据库层<三>普通主从表增删改查 不同之处在于:实例 修改为: 直接上效果: 本系列项目源码下载地址:https://github.com/GarsonZhang/G ...
- GZFramwork数据库层《三》普通主从表增删改查
运行结果: 使用代码生成器(GZCodeGenerate)生成tb_Cusomer和tb_CusomerDetail的Model 生成器源代码下载地址: https://github.com/Gars ...
- GZFramwork数据库层《二》单据表增删改查(自动生成单据号码)
运行效果: 使用代码生成器(GZCodeGenerate)生成tb_EmpLeave的Model 生成器源代码下载地址: https://github.com/GarsonZhang/GZCodeGe ...
- GZFramwork数据库层《一》普通表增删改查
运行结果: 使用代码生成器(GZCodeGenerate)生成tb_MyUser的Model 生成器源代码下载地址: https://github.com/GarsonZhang/GZCode ...
随机推荐
- 4.18 省选模拟赛 无聊的计算器 CRT EXBSGS EXLucas
算是一道很毒瘤的题目 考试的时候码+调了3h才搞定. op==1 显然是快速幂. op==2 有些点可以使用BSGS 不过后面的点是EXBSGS. 这个以前学过了 考试的时候还是懵逼.(当时还是看着花 ...
- Vue Router详细教程
1.什么是路由 1.1路由简介 说起路由你想起了什么?路由是一个网络工程里面的术语. 路由(routing)就是通过互联的网络把信息从源地址传输到目的地址的活动. --- 维基百科 额,啥玩意? 没听 ...
- Struts/Servlet,action转到jsp后,CSS失效,路径问题(struts2,jsp路径,action路径,action跳转,相对路径,绝对路径)
问题:使用struts2,如何处理action的路径?还有,在action转到的jsp中,如何写js,css,图 片的路径?(例如访问http://localhost/project/listUser ...
- LeetCode 164. Maximum Gap[翻译]
164. Maximum Gap 164. 最大间隔 Given an unsorted array, find the maximum difference between the successi ...
- Linux用C语言模拟‘ls‘命令
原理 在linux下使用C语言,通过调用Linux系统的目录访问API来实现一个类似于ls命令功能的小程序,主要是可以练习程序对命令的解析和目录API函数的使用. 实现代码 #include < ...
- GPS位置显示在地图上
源码分析博客地址:https://blog.csdn.net/wuquan_1230/article/details/79614974 工具下载地址:http://download.csdn.net/ ...
- 024_go语言中的缓冲通道
代码演示 package main import "fmt" func main() { messages := make(chan string, 2) messages < ...
- UI自动化填写问卷(selenium)+定时任务(懒人必备)
1.自动填报 UI自动化 selenium 开发程序动机:天天有人催着填写问卷,弄的头大.主要还是懒的每天一个个去填写内容. 开发总时长:2个小时:学习+开发+修改 遇到的小问题: 在自动化填写地图的 ...
- 来自灵魂的拷问——知道什么是SQL执行计划吗?
面试官说:工作这么久了,应该知道sql执行计划吧,讲讲Sql的执行计划吧! 看了看面试官手臂上纹的大花臂和一串看不懂的韩文,吞了吞口水,暗示自己镇定点,整理了一下思绪缓缓的对面试官说:我不会 面试官: ...
- SpringMVC的简介和工作流程
一.简介 Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面.Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块.Spri ...