本发明涉及数据库
技术领域:
:,尤其涉及一种mysql数据库表结构文档的生成方法、存储介质及智能终端。
背景技术:
::在各个公司、部门创建数据库或者更新数据库之后,为了让不了解该库的人员知道数据库内的各个字段的含义,需要做出一份数据库表结构文档,数据库表结构文档指的是描述程序数据库详细设计的文档,数据库表结构文档是产品交付时重要的文档之一,但该文档的书写工作技术含量低但工作量非常大,并且容易出现漏写、错写等书写错误,如果是依靠人力一张表一张表去复制粘贴,那么一天仅仅能够写数十张表,这样的模式效率低下,会浪费大量的人力和时间。因此,现有技术还有待于改进。技术实现要素:鉴于上述现有技术的不足,本发明的目的在于提供一种mysql数据库表结构文档的生成方法、存储介质及智能终端,旨在解决现有mysql数据库表结构文档生成不便,浪费人力和时间的技术问题。本发明的技术方案如下:一种mysql数据库表结构文档的生成方法,其中,包括步骤:通过pymysql连接到mysql数据库;获取mysql数据库中的所有表名及每个表名对应的表结构数据;通过python-docx创建带有预设表格样式的word文档;将所有表名和每个表名对应的表结构数据导入所述word文档的表格中得到mysql数据库表结构文档。所述的mysql数据库表结构文档的生成方法,其中,所述步骤获取mysql数据库中的所有表名及每个表名对应的表结构数据具体包括:从mysql数据库的test子数据库中获取所有表名并生成列表;并根据每个表名在列表中的顺序依次从mysql数据库的infomation_schema子数据库中获取每个表名对应的表结构数据。所述的mysql数据库表结构文档的生成方法,其中,所述步骤通过python-docx创建带有预设表格样式的word文档具体包括:根据表名的数量设置word文档内表格的个数;根据表结构数据设置表格第一行的内容。所述的mysql数据库表结构文档的生成方法,其中,所述步骤根据表结构数据设置表格第一行的内容之前还包括:以表名作为表格的标题。所述的mysql数据库表结构文档的生成方法,其中,所述步骤以表名作为表格的标题之后还包括:配置标题的样式。所述的mysql数据库表结构文档的生成方法,其中,所述标题的样式为:字体为宋体,字体加粗,字体大小为15磅。所述的mysql数据库表结构文档的生成方法,其中,所述内容包括字段标识、类型及长度、有无空值、键、默认和追加。所述的mysql数据库表结构文档的生成方法,其中,还包括步骤:预先通过pip工具下载并安装pymysql和python-docx。一种存储介质,其上存储有多条指令,其中,所述指令适于由处理器加载并执行,以实现上述任一项所述的mysql数据库表结构文档的生成方法的步骤。一种智能终端,其中,包括:处理器、与处理器通信连接的存储介质,所述存储介质适于存储多条指令;所述处理器适于调用所述存储介质中的指令,以执行实现上述任一项所述的mysql数据库表结构文档的生成方法的步骤。有益效果:本发明提供了一种mysql数据库表结构文档的生成方法、储存介质及智能终端,其中,所述生成方法包括步骤:通过pymysql连接到mysql数据库;获取mysql数据库中的所有表名及每个表名对应的表结构数据;通过python-docx创建带有预设表格样式的word文档;将所有表名和每个表名对应的表结构数据导入所述word文档的表格中得到mysql数据库表结构文档。本发明的mysql数据库表结构文档的生成方法由于采用了pymysql用来连接mysql数据库,并且采用了python-docx用来编辑和创建word文档并配置word文档中的表格样式,能够实现mysql数据库表结构文档的自动获取生成,无需人工,提高了效率,节省了人工成本。附图说明图1为本发明一种mysql数据库表结构文档的生成方法的流程图;图2为本发明一种智能终端的结构框图。具体实施方式本发明提供了一种mysql数据库表结构文档的生成方法、存储介质及智能终端,为使本发明的目的、技术方案及效果更加清楚、明确,以下对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。参见图1,本发明提供了一种mysql数据库表结构文档的生成方法,包括步骤:s100、通过pymysql连接到mysql数据库;pymysql是在python3.x版本中用于连接mysql服务器的一个库,pymysql能够用于数据库连接,以及可以执行数据库内数据的添加、删除、查询、修改、更新等操作;s200、获取mysql数据库中的所有表名及每个表名对应的表结构数据;具体来说,本发明技术方案的mysql数据库包含有多个子数据库,mysql表名和表结构数据可以选择存储在mysql数据库的同一个子数据库中,当然也可以选择分开存储在多个不同的子数据库中,生成mysql数据库表结构文档之前需要从mysql数据库中中获取表名和表结构数据信息;s300、通过python-docx创建带有预设表格样式的word文档;python-docx是一个python库,python-docx能够用于处理文档类数据,比如新建文档类、编辑已存在的word文档,新增段落、新增标题、新增分页符、新增表格、插入图片和执行段落操作等,本发明通过python-docx来创建内部带有表格的文档;s400、将所有表名和每个表名对应的表结构数据导入所述word文档的表格中得到mysql数据库表结构文档。python是一种跨平台的计算机程序设计语言,是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的、大型项目的开发,本发明技术方案需要使用几个python的模块(pymysql和python-docx),本发明的mysql数据库表结构文档的生成方法由于采用了pymysql用来连接mysql数据库,并且采用了python-docx用来编辑和创建word文档并配置word文档中的表格样式,能够实现mysql数据库表结构文档的自动获取生成,无需人工,提高了效率,节省了人工成本,需要说明的是,本发明的技术方案可以通过软件代码的方式来实现,根据实际所需要实现的功能,本领域技术人员可以采用非python设计语言来实现,具体本领域技术人员可以根据实际需要进行选择。在一种具体的实施方式中,所述步骤获取mysql数据库中的所有表名及每个表名对应的表结构数据具体包括:从mysql数据库的test子数据库中获取所有表名并生成列表;并根据每个表名在列表中的顺序依次从mysql数据库的infomation_schema子数据库中获取每个表名对应的表结构数据。具体来说,在该种实施方式中,本发明技术方案中的mysql数据库包括有test子数据库和infomation_schema子数据库,表名文件和表结构数据文件是分别存储在test子数据库和infomation_schema子数据库中,表名和表结构数分开存储这样可以提高存储数据的安全性,具体实施时,表名及其表结构数据是对应存放在两个数据库中(即同一组的表名和表结构数据,表名在test子数据库中的排列顺序和表结构数据在infomation_schema子数据库中的排列顺序是一致的,这样只需要知道表名在test子数据库中的排列序号,即可根据该序号快速在infomation_schema子数据库中查找到对应的表结构数据,这样可以提高数据的查找效率)。本发明一种具体的连接test子数据库的代码如下:db=pymysql.connect(host=”localhost”,/*库所在的计算机ip地址,localhost代表本机user=”root”,/*连接数据库所用的账户名password=”123456”/*连接数据库所用的密码database=”test”/*需要转文档的数据库名charset=”utf8”/*字符集。连接infomation_schema子数据库的代码:重复连接test子数据库的步骤,将上述代码中的database改为infomation_schema。因为在该种实施方式中本发明的技术方案需要同时连接两个子数据库,所以需要开启自动提交,否则其中一个子数据库可能瘫痪;db1.autocommit(1)db2.autocommit(2)。之后调用cursor方法得到用来执行sql的光标对象;具体步骤:在pycharm中输入cursor1=db1.cursor()cursor2=db2.cursor()执行2个sql语句,获取所有表名生成一个列表,获取每个表名对应的表结构数据,其中,#执行sql1获取test库的所有表名的代码如下:sql1='selecttable_namefromtableswheretable_schema="test"'cursor2.execute(sql1)rs1=cursor2.fetchall()sql1生成的部分内容:('alarm','alarm01','alarm02','alarm03','alarm04','alarm05','alarm06','alarm07')#将所有表名合为一个列表table_name[]table_name=[]forabcinrs1:table_name.append(abc[0])table_num=0(table_num是table_name[]中元素的下标,由0开始随循环递增)fortable_numinrange(0,len(table_name)):print(table_name)#执行sql2获取表结构数据的代码如下:sql2='desc{table}'.format(table=table_name[table_num])(desc 表名是sql语言中获取数据结构的语句,此处用format方法导入sql1生成的列表table_name[]中的各个元素作为sql2所使用的表名)cursor1.execute(sql2)sql2生成的部分内容:(('id','char(12)','no','pri',none,”),('name','char(30)','no',”,none,”),('code','int(11)','no',”,'0',”),('status','tinyint(3)unsigned','no',”,'0',”),('level','tinyint(3)unsigned','no',”,'0',”),('arosetime','datetime','no','mul','0000-00-0000:00:00',”))#打印执行结果rs2=cursor1.fetchall()print('rs2=')print(rs2)forrinrs:print(r)。在一种具体的实施方式中,所述步骤通过python-docx创建带有预设表格样式的word文档具体包括:根据表名的数量设置word文档内表格的个数;本发明技术方案的mysql数据库中按一定的顺序储存有多个表名,本发明技术方案的目的在于自动导出mysql数据库内的多个表名及其对应的表结构数据到内部带有表名数据表格的word文档中从而生成mysql数据库表结构文档,当有多少个表名时,word文档内就会生成对应数量的表格;根据表结构数据设置表格第一行的内容。具体来说,不同的mysql数据库的表结构数据的内容也会不相同,word文档内表格第一行的列数是需要根据实际表结构数据所具有的内容进行设置的,在一种情况下可以设置6列。在该种实施方式中,设置表格样式的代码具体可以如下:#设置表格样式table=document.add_table(rows=1,cols=6,style="tablegrid")width=oxmlelement('w:tblw')/*获取宽度对象width.set(qn('w:w'),'5000')/*设置表格宽度table._tblpr.append(width)/*宽度数据赋予表格#设置表格第一行的内容hdr_cells=table.rows[0].cellshdr_cells[0].text='字段标识'hdr_cells[1].text='类型及长度'hdr_cells[2].text='有无空值'hdr_cells[3].text='键'hdr_cells[4].text='默认'hdr_cells[5].text='追加'#将sql2所得到的结果rs2(即该表的数据结构)导入表格i=0forsssinrs2:row_cells=table.add_row().cellsforiinrange(0,6):(数据结构总共6列)row_cells[i].text=str(sss[i])i =1table_num =1document.add_page_break()#保存文档document.save('demo.docx')到此之后,如果table_name[]中的元素已全部使用完则跳出循环,否则继续抽取后一个元素返回到sql2进行循环。在一种具体的实施方式中,所述内容包括字段标识、类型及长度、有无空值、键、默认和追加。当然,上述内容仅代表本发明技术方案的一种实施例,本发明技术方案的内容部分还可以包括其他项。在一种具体的实施方式中,所述步骤根据表结构数据设置表格第一行的内容之前还包括:以表名作为表格的标题。具体来说,在word文档内每个表格的前面需要设置标题已明确表格对应的表名,这样能够更好的对mysql数据库内具有的表结构数据进行说明,方便用户清楚的知道每个表名内包含的字段,从而对数据库具有更加充分的了解,方便数据库的后期维护,提升维护效率,降低维护成本。在一种具体的实施方式中,所述步骤以表名作为表格的标题之后还包括:配置标题的样式。在一种实施方式中,配置标题的样式的代码可以设置如下:document=document('demo.docx')#添加标题设置标题样式photograph=document.add_paragraph(style='listnumber')#设置标题内容(将每个表的表名作为标题)run=photograph.add_run(table_name[table_num])#标题字体加粗run.bold=true#设置标题字体大小-15磅run.font.size=pt(15)#设置字体-宋体run.font.name=u'宋体'在一种具体的实施方式中,所述标题的样式为:字体为宋体,字体加粗,字体大小为15磅。本发明生成的一种具体表格样式如下:1、alarm在一种具体的实施方式中,所述mysql数据库表结构文档的生成方法还包括步骤:预先通过pip工具下载并安装pymysql和python-docx。pip工具是一个现代的,通用的python包管理工具,提供了对python包的查找、下载、安装、卸载的功能,通过pip工具下载和安装pymysql和python-docx更加便捷。本发明提供了一种存储介质,其上存储有多条指令,所述指令适于由处理器加载并执行,以实现上述任一项一种mysql数据库表结构文档的生成方法的步骤。此外,参见图2,本发明还提供了一种智能终端,包括:处理器10、与处理器通信连接的存储介质20,所述存储介质适于存储多条指令;所述处理器适于调用所述存储介质中的指令,以执行实现上述任一项一种mysql数据库表结构文档的生成方法的步骤。当然,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关硬件(如处理器,控制器等)来完成,所述的程序可存储于一计算机可读取的存储介质中,所述程序在执行时可包括如上述各方法实施例的流程。其中所述的存储介质可为存储器、磁碟、光盘等。综上所述,本发明提供了一种mysql数据库表结构文档的生成方法、储存介质及智能终端,其中,所述生成方法包括步骤:通过pymysql连接到mysql数据库;获取mysql数据库中的所有表名及每个表名对应的表结构数据;通过python-docx创建带有预设表格样式的word文档;将所有表名及每个表名对应的表结构数据导入所述word文档的表格中得到mysql数据库表结构文档。本发明的mysql数据库表结构文档的生成方法由于采用了pymysql用来连接mysql数据库,并且采用了python-docx用来编辑和创建word文档并配置word文档中的表格样式,能够实现mysql数据库表结构文档的自动获取生成,无需人工,提高了效率,节省了人工成本。应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。当前第1页1 2 3 当前第1页1 2 3 
技术特征:1.一种mysql数据库表结构文档的生成方法,其特征在于,包括步骤:
通过pymysql连接到mysql数据库;
获取mysql数据库中的所有表名及每个表名对应的表结构数据;
通过python-docx创建带有预设表格样式的word文档;
将所有表名和每个表名对应的表结构数据导入所述word文档的表格中得到mysql数据库表结构文档。
2.根据权利要求1所述的mysql数据库表结构文档的生成方法,其特征在于,所述步骤获取mysql数据库中的所有表名及每个表名对应的表结构数据具体包括:
从mysql数据库的test子数据库中获取所有表名并生成列表;
并根据每个表名在列表中的顺序依次从mysql数据库的infomation_schema子数据库中获取每个表名对应的表结构数据。
3.根据权利要求2所述的mysql数据库表结构文档的生成方法,其特征在于,所述步骤通过python-docx创建带有预设表格样式的word文档具体包括:
根据表名的数量设置word文档内表格的个数;
根据表结构数据设置表格第一行的内容。
4.根据权利要求3所述的mysql数据库表结构文档的生成方法,其特征在于,所述步骤根据表结构数据设置表格第一行的内容之前还包括:以表名作为表格的标题。
5.根据权利要求4所述的mysql数据库表结构文档的生成方法,其特征在于,所述步骤以表名作为表格的标题之后还包括:配置标题的样式。
6.根据权利要求5所述的mysql数据库表结构文档的生成方法,其特征在于,所述标题的样式为:字体为宋体,字体加粗,字体大小为15磅。
7.根据权利要求3所述的mysql数据库表结构文档的生成方法,其特征在于,所述内容包括字段标识、类型及长度、有无空值、键、默认和追加。
8.根据权利要求1所述的mysql数据库表结构文档的生成方法,其特征在于,还包括步骤:预先通过pip工具下载并安装pymysql和python-docx。
9.一种存储介质,其上存储有多条指令,其特征在于,所述指令适于由处理器加载并执行,以实现上述权利要求1-8任一项所述的mysql数据库表结构文档的生成方法的步骤。
10.一种智能终端,其特征在于,包括:处理器、与处理器通信连接的存储介质,所述存储介质适于存储多条指令;所述处理器适于调用所述存储介质中的指令,以执行实现上述权利要求1-8任一项所述的mysql数据库表结构文档的生成方法的步骤。
技术总结本发明提供了一种MySQL数据库表结构文档的生成方法、储存介质及智能终端,其中,所述生成方法包括步骤:通过PyMySQL连接到MySQL数据库;获取MySQL数据库中的所有表名及每个表名对应的表结构数据;通过python‑docx创建带有预设表格样式的word文档;将所有表名和每个表名对应的表结构数据导入所述word文档的表格中得到MySQL数据库表结构文档。本发明的MySQL数据库表结构文档的生成方法由于采用了PyMySQL用来连接MySQL数据库,并且采用了python‑docx用来编辑和创建word文档并配置word文档中的表格样式,能够实现MySQL数据库表结构文档的自动获取生成,无需人工,提高了效率,节省了人工成本。
技术研发人员:李晟华;卫宣安;姜坤
受保护的技术使用者:深圳震有科技股份有限公司
技术研发日:2020.01.17
技术公布日:2020.06.05