通过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数据库相关推荐

  1. python报表自动化系列 - 译码:与Excel单元格索引对应的十进制数坐标

    python报表自动化 - 与Excel单元格索引对应的十进制数坐标 李俊才 [调用其它函数] Split_num_letters(string) :将字符串中的字母和数字进行拆分. 博文链接:htt ...

  2. python报表自动化系列 - 译码:将纯数字译码为Excel列坐标的字母索引表示形式

    python译码器 将纯数字译码为Excel列坐标的字母索引表示形式(特殊的二十六进制) 李俊才 邮箱:291148484@163.com [内容概述] 译码在一定程度上相当于查字典.对于简单的编码, ...

  3. python报表自动化系列 - 在Windows中打开指定目录

    python在Windows系统中打开指定目录(文件夹) 李俊才 邮箱:291148484@163.com [函数说明] 该函数可以在windows系统中打开指定的文件夹,参数path应为字符串形式表 ...

  4. python报表自动化系列 - 按照文件名筛选文件

    python按照文件名筛选文件 [函数说明] 通过get_finames_all(path)函数可以返回得到目录(含其子目录)下所有的文件名组成的列表,但是这个列表中并非所有的文件名都是我们需要的,因 ...

  5. python报表自动化系列 - 获取某个时间段内所有日期

    python获取某个时间段内所有日期并以列表返回 李俊才 邮箱:291148484@163.com [调用其它函数] 获取某年某月的天数:get_days(yearmonth) 博文地址:https: ...

  6. python报表自动化系列 - 获取某月日历并以列表形式返回(公历)

    python获取某月日历(公历) 李俊才 邮箱:291148484@163.com [调用其他函数] get_days(yearmonth):获取某月的天数 见我的另外一篇博文,地址为:https:/ ...

  7. python报表自动化系列 - 计算某年某个月的天数

    Python计算某年某个月的天数(公历) 李俊才 邮箱:291148484@163.com [函数说明] 传入参数yearmont表示某年的某个具体月份,返回该月的天数. [实现方法] 每单我们指定一 ...

  8. python报表自动化系列 - 拆分一个字符串中的数字和字母

    拆分一个python字符串中的数字和字母 本文介绍在python中将一个由字母和数字组成字符串拆分为字母和数字.废话不多说,代码给出如下. def Split_num_letters(astr):nu ...

  9. python报表自动化系列 - python中索引pandas.DataFrame的内容

    索引DataFrame的内容 李俊才 邮箱:291148484@163.com Ⅰ.按数字索引,返回内容 [函数说明] 函数一个有三个形参,df表示传入的一个提供内容的DataFrame变量,(r,c ...

最新文章

  1. Python培训分享:PyQT是什么?PyQt4和PyQt5的区别是什么?
  2. MySQL 5.7 vs 8.0,哪个性能更牛?
  3. laravel 中间件不生效_laravel中间件实战(luke)
  4. 营销型网站优化攻略分享
  5. python菜鸟教程函数-Python 函数装饰器
  6. Silverlight 多窗口的实现.
  7. 【转】【C#】使用fo-dicom完成BMP,JPG,PNG图片转换为DICOM文件
  8. 在 Go 语言中增强 Cookie 的安全性
  9. python21天打卡Day6-元组
  10. 对apache中并发控制参数prefork理解和调优
  11. java 配置文件参数_从Java的配置文件中读取配置参数的最佳方法是什么?
  12. 数据库原理必背简答题【计算机考研复试】
  13. 端口输出报错**Error** test5.ASM(60) Constant too large
  14. 一篇入门Android UI 设计
  15. 5、DML语句(数据操纵语言-增删改查)
  16. c加加高级语言循环结构,高级C语言循环结构程序设计.ppt
  17. DCC-MGARCH:动态条件相关系数模型(R+Stata)
  18. python入门基础002
  19. NetSdkDemo - 界面属性 和大小设置
  20. word怎么批注修改文章

热门文章

  1. 【LeetCode 148】链表的归并排序
  2. pytorch: nn.Sequential(func1,func2,func3)
  3. Python中字符串切片操作
  4. java 使用 lamba 表达式处理二维数组
  5. Oracle数据库——触发器的创建与应用
  6. 使用cookies查询商品详情
  7. 手机端图片滑动切换效果
  8. QTP提示加载数据表文件时出错的解决方案
  9. 摇一摇根据城市位置推荐酒店
  10. 浅析IRF虚拟化技术增强企业网络架构的弹性