python报表自动化系列 - 通过Python使用MySQL数据库

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: python报表自动化系列 - 通过Python使用MySQL数据库

通过Python使用MySQL数据库实例

jcLee95的个人博客

邮箱: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()方法来创建一个游标对象cuisor
    cursor = 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 = 0
    for i in Column_list:
        column =  '`' + i + '`' + ' ' + Datatype_list[count_i] + ','
        new_list.append(column)
        Column_list = new_list
        count_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=1
                                                         DEFAULT 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”,如图所示:

打开该表,如图:

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
8天前
|
Python
Python办公自动化:删除任意页数pdf页面
Python办公自动化:删除任意页数pdf页面
20 1
Python办公自动化:删除任意页数pdf页面
|
8天前
|
Python
Python办公自动化:xlwings对Excel进行分类汇总
Python办公自动化:xlwings对Excel进行分类汇总
25 1
|
7天前
|
SQL 关系型数据库 MySQL
MySQL操作利器——mysql-connector-python库详解
MySQL操作利器——mysql-connector-python库详解
37 0
|
6天前
|
机器学习/深度学习 人工智能 运维
自动化运维的魔法:如何利用Python脚本提升工作效率
【9月更文挑战第29天】在数字时代的浪潮中,IT运维人员面临着前所未有的挑战和机遇。本文将通过深入浅出的方式,介绍自动化运维的基本概念、核心价值以及使用Python脚本实现自动化任务的方法。我们将从实际案例出发,探讨如何利用Python简化日常的系统管理任务,提高运维效率,并展望自动化运维的未来趋势。无论你是初学者还是有经验的运维专家,这篇文章都将为你开启一扇通往高效工作方式的大门。
10 2
|
6天前
|
SQL 关系型数据库 MySQL
30天拿下Python之使用MySQL
30天拿下Python之使用MySQL
14 0
|
7天前
|
关系型数据库 MySQL 数据管理
pymysql:Python操作MySQL数据库的又一利器
pymysql:Python操作MySQL数据库的又一利器
12 0
|
7天前
|
SQL 关系型数据库 MySQL
Python小技巧——将CSV文件导入到MySQL数据库
Python小技巧——将CSV文件导入到MySQL数据库
12 0
|
8天前
|
数据安全/隐私保护 Python
Python办公自动化:给pdf加水印
Python办公自动化:给pdf加水印
10 0
|
8天前
|
Python
Python办公自动化:提取pdf文件中的图片
Python办公自动化:提取pdf文件中的图片
11 0
|
8天前
|
Python
Python办公自动化:xlwings对Excel进行列拆分
Python办公自动化:xlwings对Excel进行列拆分
18 0
下一篇
无影云桌面