1、网页版:Generatedata1.1 预览1.2 功能介绍1.2.1 自定义数据集名称1.2.2 选择城市1.2.3 数据集1.2.4 导出类型1.2.5 导出记录数量1.2.6 导入 MySQL2、客户端:spawner2.1 预览2.2 功能介绍2.2.1 数据集2.2.2 输出格式2.2.3 导入数据库3.代码生成:pydbgen3.1 安装3.2 使用方法
学习数据库时,难免需要一些数据进行实验,对于小数据量的数据来说,我们自己想一些数据并插入到数据库即可,但是如果需要大量的数据时,手动输入将是一项繁琐的工作,我们也不一定能编那么多数据。基于以上,自动生成数据库数据成为了一项很重要的需求。
通过在网上搜集资料,我选择了几款可以自动生成大量随机数据库数据的工具。
Generatedata是一个免费、开放源码的脚本,主要由javascript , PHP和MySQL构成,它可以让您可以迅速生成大量各种格式的客户数据,用于测试软件,把数据输入数据库等。
generatedata 是一款在线工具,它是这样的:
generatedata
界面看着很清爽,各功能区域一目了然。如果觉得英语不好看明白,可以右上角切换成中文:
generatedata中文界面
通过查看“新闻”栏,该项目代码在今年11月18日还进行了更新。
最上方一栏可以填入数据集名称,但该功能是注册用户才可以使用的功能。如何成为注册用户呢?如下图所示,捐赠20美元可以获得一个账号,可以在线保存数据,而且可以突破每次生成100条记录的限制。
捐助
当然,对于不经常使用的人来说,这不是必要的。
因为生成的随机数据包含了姓名、国家、邮编等等,所以要选择一个国家,生成的数据会根据选择的国家进行调整:
城市
数据类型有:人类相关数据(包含姓名、国家、手机号、邮箱等)、地理相关数据(包括街道地址、城市、邮编等)、信用卡数据、数值数据、数学数据以及其他。
挑几个常用的说明一下:
数据库中自增的 ID 可以在该网址生成,不仅可以定义起始值、步长还能定义正负数,甚至还可以将数字与字符串组合成一个字段:
自增列
人名也是经常用到的,可以对生成的姓名进行多种约束:男、女、姓、名等:
姓名
如果想生成班级同学的成绩数据,需要用到 数值范围 即生成指定数值之间的数据:
数值范围
还有很多数据类型,有需要的自行查看。如果字段不够了,可以在表格下方增加需要的行数。还有很好的一点是:可以用鼠标拖动各行进行排序。
可供选择的导出格式有:CSV、Excel、HTML、JSON、LDIF、SQL、XML。 SQL 是我们关注的重点。
选择完了导出类型,还可以选择是在页面中显示还是以文件的形式下载。
我们选择自动生成数据的意图之一是想要大量的数据,该网址虽然也提供了选择生成记录数量的功能(页面左下角),但是那是为注册用户提供的,而且最多是5000条,而作为普通用户,每次只能生成100条记录,这并不能满足我们的需求。
如果我们点击左下角编辑框,会弹出警告:
警告
===== 华丽的分割线 ====
接下来要交给大家如何解除生成记录数据的限制(以 Chrome 为例)。
首先按 "F12" 调出开发者工具,然后按图示步骤找出左下角编辑框在 HTML 中的位置:
突破限制
找到了100然后双击进入编辑状态,将该值改为 10000 ,然后可以看到页面左下角由 100 变为 10000 了:
改成10000
那么它会起作用吗?我们拭目以待,点击右下角 “生成” 按钮,由于我选择的是以文件方式生成,会生成一个名为“dataNov-21-2018.sql”的文件。我们打开它看一下:
10000条记录
可以看到,一共生成了10000条记录,正是我们所需要的。记录数量竟然超过了官方规定的注册用户的最高限制。此处应该有掌声。
==== 华丽的结尾 ====
光生成数据库还不算完,最终导入到 MySQL 中才能为我们所用。前面已经介绍过 MySQL 的官方工具“MySQL Workbench”,打开它并连接数据库。
点击"File"->"Open SQL Script",选择刚才下载的 dataNov-21-2018.sql 文件:
打开SQL文件
由于该 SQL 脚本并没有指定使用哪个数据库,所以,在打开的 SQL 窗口前面要加上一句" USE `mysql_learn`; "(mysql_learn可以为其他你现存的任一数据库名称)。
执行
添加完该语句后,点击类似于闪电的图标执行所有SQL语句。等所有语句执行完进行验证,在Query 窗口输入指令:"select * from mysql_learn.uscity; " 然后执行,看是否为 10000条记录。
验证插入结果
从图中可以看到所有10000条数据都已插入到 MySQL 中,大功告成。
Spawner 是一个样品/测试数据的数据库生成器。它可以配置为输出指定的文本或SQL插入声明。它也可以直接插入到一个MySQL 5.x的数据库。包括许多字段类型,其中大部分是可配置的。
其界面如下,主要由三个 TAB 页组成:字段定义、输出定义和日志信息。
spawner
该客户端和 Generatedata 的大部分功能重叠,只有少数差异化功能。
支持的数据类型也不少:数值类型、人类相关数据、时间、文本、集合、网络,也涵盖了日常需要的数据类型。
spawner数据格式
各种数据类型不再赘述,请自行查阅。为了插入同一个数据库,分别创建如下四个字段:
注意:该客户端不限制生成记录的条数。
输出格式有四种:Delimited、Fixed Width、SQL、MySQL Database。
delimited
生成的数据:
csv数据
spawner插入mysql报错
我尝试将 MySQL 安装目录下的 “libmysql.dll” 放到该 exe 的目录或者 "C:/Windows/SysWOW64" 目录都无效,所以我选择放弃,如果你有办法解决,欢迎留言。
使用 1.2.6 中的方法将生成的 "datagen.sql" 文件导入并执行,最后查看表中的记录:
20000条数据
正好 20000 条数据,说明数据插入成功。
pydbgen 是一个轻量的纯 Python 库,它可以生成包括姓名、地址、信用卡号、日期、时间、公司名称等数据,存放在 Pandas Dataframe 对象中,并可以保存到 SQLite 数据库或 Excel 文件。
假定电脑上已经安装了 Python,只需要执行如下命令进行安装:
pip install pydbgen
在 Python 3.6版本安装成功。
当前 1.0.0 版本主要有以下几个主要方法:
gen_data_series()
gen_dataframe()
gen_table()
gen_excel()
gen_table()
接口会使用 Python 内置的 SQLite 引擎生成一个 ".db" 后缀的数据库,用户可以选择多种数据类型当做数据表的列名,SQLite 表中的所有的数据类型都是 VARCHAR 类型。如下类型可用:使用示例:
from pydbgen import pydbgen
myDB = pydbgen.pydb()
myDB.gen_table(200, db_file="TestDB.db",table_name="People", fields=["name",'phone','city'])
执行完成后,会生成一个 TestDB.db 文件,使用 Navicat for SQLite 打开该数据库文件:
打开db文件
点击 "File"->"Export" 可以将db文件导出为 SQL 脚本,然后使用前面提到的方法将 SQL 文件导入到 MySQL 数据库中。
由于 pydbgen 支持的数据类型不是很多,根据需求选择是否需要使用它,期待它的发展。
本文介绍了三种生成 随机数据库数据的工具,希望能帮助大家更加顺利的学习 MySQL。如果您有其他好的数据生成工具,也欢迎留言和大家分享!
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有