MySQL 从零开始:08 番外:随机生成数据库数据 |
您所在的位置:网站首页 › 复仇女神有多强啊 › MySQL 从零开始:08 番外:随机生成数据库数据 |
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 使用方法 学习数据库时,难免需要一些数据进行实验,对于小数据量的数据来说,我们自己想一些数据并插入到数据库即可,但是如果需要大量的数据时,手动输入将是一项繁琐的工作,我们也不一定能编那么多数据。基于以上,自动生成数据库数据成为了一项很重要的需求。 通过在网上搜集资料,我选择了几款可以自动生成大量随机数据库数据的工具。 1、网页版:GeneratedataGeneratedata是一个免费、开放源码的脚本,主要由javascript , PHP和MySQL构成,它可以让您可以迅速生成大量各种格式的客户数据,用于测试软件,把数据输入数据库等。 工具网址:http://www.generatedata.comgithub地址:https://github.com/benkeen/generatedata官方文档: http://benkeen.github.io/generatedata/1.1 预览generatedata 是一款在线工具,它是这样的: generatedata 界面看着很清爽,各功能区域一目了然。如果觉得英语不好看明白,可以右上角切换成中文: generatedata中文界面 通过查看“新闻”栏,该项目代码在今年11月18日还进行了更新。 1.2 功能介绍1.2.1 自定义数据集名称最上方一栏可以填入数据集名称,但该功能是注册用户才可以使用的功能。如何成为注册用户呢?如下图所示,捐赠20美元可以获得一个账号,可以在线保存数据,而且可以突破每次生成100条记录的限制。 捐助 当然,对于不经常使用的人来说,这不是必要的。 1.2.2 选择城市因为生成的随机数据包含了姓名、国家、邮编等等,所以要选择一个国家,生成的数据会根据选择的国家进行调整: 城市 1.2.3 数据集数据类型有:人类相关数据(包含姓名、国家、手机号、邮箱等)、地理相关数据(包括街道地址、城市、邮编等)、信用卡数据、数值数据、数学数据以及其他。 挑几个常用的说明一下: 数据库中自增的 ID 可以在该网址生成,不仅可以定义起始值、步长还能定义正负数,甚至还可以将数字与字符串组合成一个字段: 自增列 人名也是经常用到的,可以对生成的姓名进行多种约束:男、女、姓、名等: 姓名 如果想生成班级同学的成绩数据,需要用到 数值范围 即生成指定数值之间的数据: 数值范围 还有很多数据类型,有需要的自行查看。如果字段不够了,可以在表格下方增加需要的行数。还有很好的一点是:可以用鼠标拖动各行进行排序。 1.2.4 导出类型可供选择的导出格式有:CSV、Excel、HTML、JSON、LDIF、SQL、XML。 SQL 是我们关注的重点。 可以定义表名称。选择数据库格式:MySQL、SQLite、Postgres、Oracle、SQL Server。可以生成创建表的语句、删除表的语句。选择批量插入的条数,即每一条 INSERT 语句插入数据的条数。选择是否添加 Primary Key 列。选择完了导出类型,还可以选择是在页面中显示还是以文件的形式下载。 1.2.5 导出记录数量我们选择自动生成数据的意图之一是想要大量的数据,该网址虽然也提供了选择生成记录数量的功能(页面左下角),但是那是为注册用户提供的,而且最多是5000条,而作为普通用户,每次只能生成100条记录,这并不能满足我们的需求。 如果我们点击左下角编辑框,会弹出警告: 警告 ===== 华丽的分割线 ==== 接下来要交给大家如何解除生成记录数据的限制(以 Chrome 为例)。 首先按 "F12" 调出开发者工具,然后按图示步骤找出左下角编辑框在 HTML 中的位置: 突破限制 找到了100然后双击进入编辑状态,将该值改为 10000 ,然后可以看到页面左下角由 100 变为 10000 了: 改成10000 那么它会起作用吗?我们拭目以待,点击右下角 “生成” 按钮,由于我选择的是以文件方式生成,会生成一个名为“dataNov-21-2018.sql”的文件。我们打开它看一下: 10000条记录 可以看到,一共生成了10000条记录,正是我们所需要的。记录数量竟然超过了官方规定的注册用户的最高限制。此处应该有掌声。 ==== 华丽的结尾 ==== 1.2.6 导入 MySQL光生成数据库还不算完,最终导入到 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 中,大功告成。 2、客户端:spawnerSpawner 是一个样品/测试数据的数据库生成器。它可以配置为输出指定的文本或SQL插入声明。它也可以直接插入到一个MySQL 5.x的数据库。包括许多字段类型,其中大部分是可配置的。 下载地址:https://sourceforge.net/projects/spawner/2.1 预览其界面如下,主要由三个 TAB 页组成:字段定义、输出定义和日志信息。 spawner 2.2 功能介绍该客户端和 Generatedata 的大部分功能重叠,只有少数差异化功能。 2.2.1 数据集支持的数据类型也不少:数值类型、人类相关数据、时间、文本、集合、网络,也涵盖了日常需要的数据类型。 spawner数据格式 各种数据类型不再赘述,请自行查阅。为了插入同一个数据库,分别创建如下四个字段: 2.2.2 输出格式注意:该客户端不限制生成记录的条数。 输出格式有四种:Delimited、Fixed Width、SQL、MySQL Database。 Delimited 就是将各字段以指定分隔符进行分隔,如果指定分隔符为逗号,并勾选“Include field names as first row of delimited output”,我们将得到一个 CSV 格式的数据:delimited 生成的数据: csv数据 SQL 格式可以指定表名称、每条 INSERT 语句插入的记录条数、操作类型等。MySQL Database 输出就比较有意思了,它是直接连接 MySQL 数据库将生成的数据直接插入。但是该功能一致报错,如图所示:spawner插入mysql报错 我尝试将 MySQL 安装目录下的 “libmysql.dll” 放到该 exe 的目录或者 "C:/Windows/SysWOW64" 目录都无效,所以我选择放弃,如果你有办法解决,欢迎留言。 2.2.3 导入数据库使用 1.2.6 中的方法将生成的 "datagen.sql" 文件导入并执行,最后查看表中的记录: 20000条数据 正好 20000 条数据,说明数据插入成功。 3.代码生成:pydbgenpydbgen 是一个轻量的纯 Python 库,它可以生成包括姓名、地址、信用卡号、日期、时间、公司名称等数据,存放在 Pandas Dataframe 对象中,并可以保存到 SQLite 数据库或 Excel 文件。 github 地址:https://github.com/tirthajyoti/pydbgen3.1 安装假定电脑上已经安装了 Python,只需要执行如下命令进行安装: pip install pydbgen在 Python 3.6版本安装成功。 3.2 使用方法当前 1.0.0 版本主要有以下几个主要方法: gen_data_series()gen_dataframe()gen_table()gen_excel() gen_table() 接口会使用 Python 内置的 SQLite 引擎生成一个 ".db" 后缀的数据库,用户可以选择多种数据类型当做数据表的列名,SQLite 表中的所有的数据类型都是 VARCHAR 类型。如下类型可用:Name, country, city, real (US) cities, US state, zipcode, latitude, longitudeMonth, weekday, year, time, datePersonal email, official email, SSNCompany, Job title, phone number, license plate使用示例: 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 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |