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

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,高可用系列 2核4GB
云数据库 RDS MySQL,高可用系列 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”,如图所示:

打开该表,如图:

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
目录
相关文章
|
3月前
|
数据可视化 BI API
无缝对接云数据库:自定义报表生成工具在混合云环境下的部署指南
自定义报表生成工具通过拖拽设计、多数据源整合及自动化输出,帮助业务人员零代码创建个性化报表,解决传统工具灵活性不足、技术门槛高的问题。文章对比其与传统报表差异,列举行业应用场景(如财务、零售),并给出选型建议与主流工具(如FineReport、Power BI、板栗看板)的优劣势分析。
114 0
|
3月前
|
Web App开发 存储 前端开发
Python+Selenium自动化爬取携程动态加载游记
Python+Selenium自动化爬取携程动态加载游记
|
6月前
|
机器学习/深度学习 数据采集 API
Python自动化解决滑块验证码的最佳实践
Python自动化解决滑块验证码的最佳实践
|
9天前
|
存储 数据库 开发者
Python SQLite模块:轻量级数据库的实战指南
本文深入讲解Python内置sqlite3模块的实战应用,涵盖数据库连接、CRUD操作、事务管理、性能优化及高级特性,结合完整案例,助你快速掌握SQLite在小型项目中的高效使用,是Python开发者必备的轻量级数据库指南。
90 0
|
3月前
|
数据采集 人工智能 API
推荐一款Python开源的AI自动化工具:Browser Use
Browser Use 是一款基于 Python 的开源 AI 自动化工具,融合大型语言模型与浏览器自动化技术,支持网页导航、数据抓取、智能决策等操作,适用于测试、爬虫、信息提取等多种场景。
633 4
推荐一款Python开源的AI自动化工具:Browser Use
|
5月前
|
SQL 数据库 开发者
Python中使用Flask-SQLAlchemy对数据库的增删改查简明示例
这样我们就对Flask-SQLAlchemy进行了一次简明扼要的旅程,阐述了如何定义模型,如何创建表,以及如何进行基本的数据库操作。希望你在阅读后能对Flask-SQLAlchemy有更深入的理解,这将为你在Python世界中从事数据库相关工作提供极大的便利。
509 77
|
7月前
|
关系型数据库 BI OLAP
一招解决数据库中报表查询慢的痛点
本文旨在解决传统数据库系统如PostgreSQL在处理复杂分析查询时面临的性能瓶颈问题。
1302 163
一招解决数据库中报表查询慢的痛点
|
3月前
|
数据采集 存储 监控
Python爬虫自动化:定时监控快手热门话题
Python爬虫自动化:定时监控快手热门话题
|
3月前
|
安全 数据库 数据安全/隐私保护
Python办公自动化实战:手把手教你打造智能邮件发送工具
本文介绍如何使用Python的smtplib和email库构建智能邮件系统,支持图文混排、多附件及多收件人邮件自动发送。通过实战案例与代码详解,帮助读者快速实现办公场景中的邮件自动化需求。
274 0
|
5月前
|
数据采集 存储 前端开发
Python爬虫自动化:批量抓取网页中的A链接
Python爬虫自动化:批量抓取网页中的A链接

热门文章

最新文章

推荐镜像

更多