python报表自动化系列 - 通过Python使用MySQL数据库
通过Python使用MySQL数据库实例
李俊才
邮箱:291148484@163.com
【函数说明】
如调用本函数,必须先安装有MySQL数据库软件,并已经建立了某个数据库,然后方可使用本函数对已经建立好的数据库创建一个新的表。
[参数]:
- host:主机名,或者是网络中主机的IP地址,对于本地主机,为’localhost’
- user:用户名,在生产环境不建议直接使用root用户
- password:对于与用户名的密码;
- db:已经建立好的某数据库名;
- table_name:需要创建的表名;
- Column_list:列名称的列表;
- Datatype_list:所有列的数据类型列表;
- primary_key:对应SQL的PRIMARY KEY,约束唯一标识数据库表中的每条记录。主键必须包含唯一的值,主键列不能包含 NULL 值,每个表都应该有一个主键,并且每个表只能有一个主键。
【代码实现】
import pymysql
#给指定主机上的某数据库创建表
def creat_MySQL_table(host, user, password, db, table_name, Column_list, Datatype_list, primary_key):connection = pymysql.connect(host = host,user = user,password = password,db = db,charset = 'utf8', #字符编码)#使用cursor()方法来创建一个游标对象cuisorcursor = connection.cursor()SQL_DROP = "DROP TABLE IF EXISTS " + table_name#使用execute()方法执行SQL_DROP,如果表存在则删除cursor.execute(SQL_DROP)SQL_CREAT_TABLE = 'EATE TABLE ' + '`' + table_name + '`' + '('new_list = []count_i = 0for i in Column_list:column = '`' + i + '`' + ' ' + Datatype_list[count_i] + ','new_list.append(column)Column_list = new_listcount_i = count_i + 1#通过字符串拼接实现可以用于MySQL执行的SQL语句SQL_CREAT_TABLE = 'CREATE TABLE ' + '`' + table_name + '`' + ' ' + '(\n'for i in Column_list:SQL_CREAT_TABLE = SQL_CREAT_TABLE + ' ' + i + '\n'SQL_CREAT_TABLE = SQL_CREAT_TABLE + ' ' + 'PRIMARY KEY (' + primary_key + ')'SQL_CREAT_TABLE = SQL_CREAT_TABLE + '\n' + ')ENGINE=MyISAM AUTO_INCREMENT=1DEFAULT CHARSET=utf8 COLLATE=utf8_bin ;'#执行创建表语句cursor.execute(SQL_CREAT_TABLE)#关闭与数据库的连接connection.close()#返回值是用来调试被用于创建表的SQL语句,建议使用print()函数查看return str(SQL_CREAT_TABLE)
【调用实例】
#定义调用参数
Column_list = ['Time','Normal Drop (000)','No Chute Assignment (001)','Recirculation Exceeded (002)','Unknown Piece / Bad Load (003)','Multiple Barcodes (004)','No Sort Instruction (005)','Other Reasons (006)','VCS Timeout (008)','VCS Reject (009)','No Reads (010)','MES Reject (011)','Total']
Datatype_list = ['int(35) NOT NULL AUTO_INCREMENT','int(5) NULL','int(5) NULL','int(5) NULL','int(5) NULL','int(5) NULL','int(5) NULL','int(5) NULL','int(5) NULL','int(5) NULL','int(5) NULL','int(5) NULL','int(5) NULL']
host = 'localhost'
user = 'root'
password = 'root'
db = 'as01'
table_name = 'Thtoughput'
primary_key = 'Time'#调用函数
creat_MySQL_table(host, user, password, db, table_name, Column_list, Datatype_list, primary_key)
打开数据库图形化管理工具Navicat查看,可以发现在数据库“as01”(调用前已经创建好)中生成了一个表“Throughput”,如图所示:
打开该表,如图:
python报表自动化系列 - 通过Python使用MySQL数据库相关推荐
- python报表自动化系列 - 译码:与Excel单元格索引对应的十进制数坐标
python报表自动化 - 与Excel单元格索引对应的十进制数坐标 李俊才 [调用其它函数] Split_num_letters(string) :将字符串中的字母和数字进行拆分. 博文链接:htt ...
- python报表自动化系列 - 译码:将纯数字译码为Excel列坐标的字母索引表示形式
python译码器 将纯数字译码为Excel列坐标的字母索引表示形式(特殊的二十六进制) 李俊才 邮箱:291148484@163.com [内容概述] 译码在一定程度上相当于查字典.对于简单的编码, ...
- python报表自动化系列 - 在Windows中打开指定目录
python在Windows系统中打开指定目录(文件夹) 李俊才 邮箱:291148484@163.com [函数说明] 该函数可以在windows系统中打开指定的文件夹,参数path应为字符串形式表 ...
- python报表自动化系列 - 按照文件名筛选文件
python按照文件名筛选文件 [函数说明] 通过get_finames_all(path)函数可以返回得到目录(含其子目录)下所有的文件名组成的列表,但是这个列表中并非所有的文件名都是我们需要的,因 ...
- python报表自动化系列 - 获取某个时间段内所有日期
python获取某个时间段内所有日期并以列表返回 李俊才 邮箱:291148484@163.com [调用其它函数] 获取某年某月的天数:get_days(yearmonth) 博文地址:https: ...
- python报表自动化系列 - 获取某月日历并以列表形式返回(公历)
python获取某月日历(公历) 李俊才 邮箱:291148484@163.com [调用其他函数] get_days(yearmonth):获取某月的天数 见我的另外一篇博文,地址为:https:/ ...
- python报表自动化系列 - 计算某年某个月的天数
Python计算某年某个月的天数(公历) 李俊才 邮箱:291148484@163.com [函数说明] 传入参数yearmont表示某年的某个具体月份,返回该月的天数. [实现方法] 每单我们指定一 ...
- python报表自动化系列 - 拆分一个字符串中的数字和字母
拆分一个python字符串中的数字和字母 本文介绍在python中将一个由字母和数字组成字符串拆分为字母和数字.废话不多说,代码给出如下. def Split_num_letters(astr):nu ...
- python报表自动化系列 - python中索引pandas.DataFrame的内容
索引DataFrame的内容 李俊才 邮箱:291148484@163.com Ⅰ.按数字索引,返回内容 [函数说明] 函数一个有三个形参,df表示传入的一个提供内容的DataFrame变量,(r,c ...
最新文章
- Python培训分享:PyQT是什么?PyQt4和PyQt5的区别是什么?
- MySQL 5.7 vs 8.0,哪个性能更牛?
- laravel 中间件不生效_laravel中间件实战(luke)
- 营销型网站优化攻略分享
- python菜鸟教程函数-Python 函数装饰器
- Silverlight 多窗口的实现.
- 【转】【C#】使用fo-dicom完成BMP,JPG,PNG图片转换为DICOM文件
- 在 Go 语言中增强 Cookie 的安全性
- python21天打卡Day6-元组
- 对apache中并发控制参数prefork理解和调优
- java 配置文件参数_从Java的配置文件中读取配置参数的最佳方法是什么?
- 数据库原理必背简答题【计算机考研复试】
- 端口输出报错**Error** test5.ASM(60) Constant too large
- 一篇入门Android UI 设计
- 5、DML语句(数据操纵语言-增删改查)
- c加加高级语言循环结构,高级C语言循环结构程序设计.ppt
- DCC-MGARCH:动态条件相关系数模型(R+Stata)
- python入门基础002
- NetSdkDemo - 界面属性 和大小设置
- word怎么批注修改文章