【Python + Mysql】之用pymysql库连接Mysql数据库并进行增删改查操作
用pip下载pymysql并引用
具体请参考文章:
《python3.6 使用 pymysql 连接 Mysql 数据库及 简单的增删改查操作》*
废话不多说,上代码:
- #!/usr/bin/env python
- # -*- coding: utf-8 -*-
- # @Time : 2018/09/21 09:20
- # @Author : zc
- # @File : PyMysql.py
- import pymysql
- from datetime import date,datetime,timedelta
- def connectMysql():
- '''connectMysql
- 连接Mysql数据库
- :return: db
- '''
- # 连接配置信息
- config = {
- 'db' : "ET", # 数据库
- 'host' : "localhost", # 主机
- 'port' : 3306, # 端口
- 'user' : "root", # 用户名
- 'password' : "" # 密码
- }
- # 创建连接
- db = pymysql.connect(**config)
- # 返回数据库
- return db
- def selectTable(sql):
- '''
- # 1.查询操作
- :return:查询表et01数据
- '''
- # 获取操作游标
- cur = connectMysql().cursor()
- try:
- cur.execute(sql) # 执行sql语句
- results = cur.fetchall() # 获取查询的所有记录
- print("id","name","age","date")
- # 遍历结果
- for row in results:
- et_id = row[0]
- et_name = row[1]
- et_age = row[2]
- et_date = row[3]
- # if 0 < et_id < 10:
- # print("et_id:" + "0" + str(et_id),
- # "et_name:" + et_name,
- # "et_age:" + str(et_age),
- # "et_date:" + str(et_date))
- # else:
- # print("et_id:" + str(et_id),
- # "et_name:" + et_name,
- # "et_age:" + str(et_age),
- # "et_date:" + str(et_date))
- print("et_id:" + str(et_id),
- "et_name:" + et_name,
- "et_age:" + str(et_age),
- "et_date:" + str(et_date))
- except Exception as e:
- raise e
- print("raise后,会不会执行!")
- finally:
- connectMysql().close() # 关闭连接
- def publicMethods(sql,args):
- '''
- # 2.增、删、改操作
- :return:
- '''
- # 获取操作游标
- db = connectMysql()
- cur = db.cursor()
- try:
- cur.executemany(sql,args)
- # cur.execute(sql, ('zc02', 23, date(2018,9,22))) # 另一种时间写法
- #插入多条数据
- # cur.executemany(sql, [("tom", "123"), ("alex", '321')])
- # 提交
- db.commit()
- except:
- # 错误回滚
- connectMysql().rollback()
- finally:
- cur.close()
- connectMysql().close()
- if __name__ == '__main__':
- #1、查询数据库;2、插入数据;3、更新数据;4、删除数据;
- num = 1
- if num == 1:
- # 编写sql查询语句,对应我的表名:et01
- sql = "select * from et01;"
- selectTable(sql)
- elif num == 2:
- # 获取明天的时间
- tomorrow = datetime.now().date() + timedelta(days=1)
- # 插入语句
- insert_sql = "insert into et01(et_name,et_age,et_date) values(%s,%s,%s)"
- publicMethods(insert_sql,[('zc02',23,tomorrow)])
- elif num == 3:
- #更新语句
- update_sql = "update et01 set et_name = %s where et_id = %s;"
- publicMethods(update_sql,[('et01',1)])
- elif num == 4:
- #删除语句
- delete_sql = "delete from et01 where et_id = %s;"
- publicMethods(delete_sql,[(3)])
【Python + Mysql】之用pymysql库连接Mysql数据库并进行增删改查操作的更多相关文章
- 48.Python中ORM模型实现mysql数据库基本的增删改查操作
首先需要配置settings.py文件中的DATABASES与数据库的连接信息, DATABASES = { 'default': { 'ENGINE': 'django.db.backends.my ...
- java连接mysql数据库 三 实现增删改查操作
同以前一样,先写一个数据库打开和关闭操作类 public class DBConnection { String driver = "com.mysql.jdbc.Driver"; ...
- .net 连接SqlServer数据库及基本增删改查
一.写在前面 因为这学期选修的 .net 课程就要上机考试了,所以总结下.net 操作 SqlServer 数据的方法.(因为本人方向是 Java,所以对.net 的了解不多,但以下所写代码均是经过测 ...
- 封装MySQL的单例,连接数据库并对数据进行增删改查操作
单例: 一个类只能有一个对象 应用场景:多次请求数据库只需要一个连接对象. 实现:三私一公 1.私有的静态属性用来保存对象的单例2.私有的构造方法用来阻止在类的外部实例化3.私有的__clone阻止在 ...
- MYSQL学习笔记 (二)对数据库结构的增删改查
显示数据库 show databases; 选择数据库 use database;//其实database为数据库的名字 创建表 create table tbclass( id int not nu ...
- python3.6 使用 pymysql 连接 Mysql 数据库及 简单的增删改查操作
1.通过 pip 安装 pymysql 进入 cmd 输入 pip install pymysql 回车等待安装完成: 安装完成后出现如图相关信息,表示安装成功. 2.测试连接 import ...
- Python进阶----数据库的基础,关系型数据库与非关系型数据库(No SQL:not only sql),mysql数据库语言基础(增删改查,权限设定)
day37 一丶Python进阶----数据库的基础,mysql数据库语言基础(增删改查,权限设定) 什么是数据库: 简称:DataBase ---->DB 数据库即存放数据的仓库, ...
- python web.py操作mysql数据库,实现对数据库的增删改查操作
使用web.py框架,实现对mysql数据库的增删改查操作: 该示例代码中连接的是本地数据库testdb,user表,表结构比较简单,只有两个字段:mobile和passwd,类型均为字符型 实际应用 ...
- 通过jdbc连接MySql数据库的增删改查操作
一.获取数据库连接 要对MySql数据库内的数据进行增删改查等操作,首先要获取数据库连接 JDBC:Java中连接数据库方式 具体操作如下: 获取数据库连接的步骤: 1.先定义好四个参数 String ...
随机推荐
- 「CTSC2018」假面
真~签到题qwq 昨天在考场上先写了个70分暴力dp,然后发现好像可以优化.因为结界技能的模型相当于要求出 对于每个物品,仅仅不选它的背包是什么.... 于是当场脑补出两种做法: 前缀和后缀背包卷积 ...
- skywalking学习
skywalking简介 SkyWalking一个开源可观测性平台,用于收集.分析.聚合和可视化来自服务和云原生基础设施的数据.SkyWalking提供了一种简单的方法,可以让你清晰的查看分布式系统. ...
- 代理模式(Proxy)--动态代理(CGLIB)
上一篇:代理模式(Proxy)--动态代理(jdk) (1)CGLIB技术是第三方代理技术,可以对任何类生成代理,代理的原则是对目标对象进行继承代理 (2)如果目标对象被final修饰,则无法被CGL ...
- ISP图像处理算法之---Demosaic
目前市场上主流传感器为Coms传感器,sensor出来的的数据格式为bayer数据格式,这种格式,每个像素点只有三个颜色通道中的一个,如图1所示 ...
- 搜索引擎Solr-6.6.0搭建
一.简介 Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口.用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引:也可以通过Http ...
- hive 行转列,列转行
行转列: concat_ws 列转行: explode
- ASP.NET MVC学习---(二)EF文件结构
之前已经简单的介绍过ORM框架和EF 也了解了EF的种种优点 那么这个EF到底长啥样子都还没见过呢 别着急 接下来,科学教育频道--走近科学 带你走进EF的内心世界~ 那么接下来就是~ 等等等等... ...
- 2017.7.18 windows下ELK环境搭建
参考来自:Windows环境下ELK平台的搭建 另一篇博文:2017.7.18 linux下ELK环境搭建 0 版本说明 因为ELK从5.0开始只支持jdk 1.8,但是项目中使用的是JDK 1.7, ...
- D3学习之:D3.js中的12中地图投影方式
特别感谢:1.[张天旭]的D3API汉化说明.已被引用到官方站点: 2.[馒头华华]提供的ourd3js.com上提供的学习系列教程,让我们这些新人起码有了一个方向. 不得不说,学习国外的新技术真的是 ...
- POJ 1144 Network(无向图连通分量求割点)
题目地址:id=1144">POJ 1144 求割点.推断一个点是否是割点有两种推断情况: 假设u为割点,当且仅当满足以下的1条 1.假设u为树根,那么u必须有多于1棵子树 2.假设u ...