`

如何一条SQL快速生成100万条测试数据 .

阅读更多
创建大量的测试数据,动不动就需要上万条,如何通过一条SQL快速生成大量的测试数据的方法。

SQL> select rownum as id,
  2                 to_char(sysdate + rownum / 24 / 3600, 'yyyy-mm-dd hh24:mi:ss') as inc_datetime,
  3                 trunc(dbms_random.value(0, 100)) as random_id,
  4                 dbms_random.string('x', 20) random_string
  5            from dual
  6          connect by level <= 10;

        ID INC_DATETIME         RANDOM_ID RANDOM_STRING
---------- ------------------- ---------- --------------------------------------------------------------------------------
         1 2009-12-08 19:43:14         76 GWMU280MIVBKKOCZV620
         2 2009-12-08 19:43:15         34 GNV88O6TDHD3TWC5GWI5
         3 2009-12-08 19:43:16         77 LI6H4O5IAHQIMO4B0WMH
         4 2009-12-08 19:43:17         99 LP7XP49I0YOJIYSJDQZO
         5 2009-12-08 19:43:18         55 V3284X9RXW4UZI8BQMO3
         6 2009-12-08 19:43:19         16 T0OA52UAOGHL1TT46H25
         7 2009-12-08 19:43:20         61 UY6RUOF7HWTO86942FLP
         8 2009-12-08 19:43:21         25 JYXO4OPEW8J1CKVCPDJR
         9 2009-12-08 19:43:22         10 DONU6W9QVQM3KJ2UG8LO
        10 2009-12-08 19:43:23         76 J8DJLVNOUIZDXE4UXUJG

10 rows selected

上面SQL利用了Oracle几个小技巧实现的:
1、利用Oracle特有的“connect by”树形连接语法生成测试记录,“level <= 10”表示要生成10记录;
2、利用rownum虚拟列生成递增的整数数据;
3、利用sysdate函数加一些简单运算来生成日期数据,本例中是每条记录的时间加1秒;
4、利用dbms_random.value函数生成随机的数值型数据,本例中是生成0到100之间的随机整数;
5、利用dbms_random.string函数生成随机的字符型数据,本例中是生成长度为20的随机字符串,字符串中可以包括字符或数字。
ok,那要生成100万条测试记录表可以用如下SQL:
create table myTestTable as
select rownum as id,
               to_char(sysdate + rownum/24/3600, 'yyyy-mm-dd hh24:mi:ss') as inc_datetime,
               trunc(dbms_random.value(0, 100)) as random_id,
               dbms_random.string('x', 20) random_string
          from dual
        connect by level <= 1000000;

分享到:
评论

相关推荐

    Oracle中如何用一条SQL快速生成10万条测试数据

    本文将深入探讨如何利用一条SQL语句在Oracle中快速生成10万条测试数据,这对于数据库管理员和开发人员来说是一项极为实用的技能。 ### 核心知识点:使用SQL生成大量测试数据 #### 1. **理解ROWNUM和CONNECT BY ...

    Oracle中如何用一条SQL快速生成10万条测试数据.txt

    ### 核心知识点:使用一条SQL语句快速生成10万条测试数据 #### 1. 使用`CONNECT BY LEVEL`生成连续行 在Oracle中,`CONNECT BY LEVEL`是一个非常强大的功能,它可以用来生成连续的行数据。在这个例子中,我们使用...

    快速生成10万条测试数据

    ### 快速生成10万条测试数据 在软件开发过程中,为了确保应用程序的功能正确性和性能稳定性,测试数据是必不可少的。特别是在数据库相关的应用中,拥有大量且具有代表性的测试数据能够帮助开发者更好地验证系统的...

    mysql百万级测试数据下载 300W条

    总之,"mysql百万级测试数据下载 300W条"为数据库测试提供了一个理想的数据环境。通过这些数据,开发者和测试人员能够全面评估和优化MySQL数据库的性能、稳定性和安全性,从而提升整个系统的质量。

    30s生成1000000基准测试数据

    本文将详细介绍一种在30秒内快速生成100万条测试数据的方法,并通过SQL Server 2005数据库实现这一目标。 #### 数据库引擎:SQL Server 2005 SQL Server 2005是一款功能强大的关系型数据库管理系统,它提供了丰富...

    Mysql生成三千万条数据

    ### MySQL生成三千万条数据的方法及测试分析 #### 一、背景与目的 在软件开发过程中,特别是数据库应用系统的设计与优化阶段,测试数据库在大数据量下的表现是至关重要的一步。通过模拟实际业务场景中的数据规模,...

    MySQL如何快速的创建千万级测试数据

    本文将探讨如何快速地在MySQL中生成千万级别的测试数据。首先,我们了解几种常见的创建测试数据的方法。 1. **编写代码插库**:这种方法虽然灵活,但往往需要编写大量代码,且性能可能较低,不推荐作为首选。 2. *...

    C#/.Net 中快速批量给SQLite数据库插入测试数据

    在C#/.Net环境中,对SQLite数据库进行快速批量插入测试数据是常见的开发需求,尤其是在测试、性能优化或者数据初始化时。下面将详细讲解如何利用C#/.Net的特性以及SQLite数据库API来实现这一目标。 首先,SQLite是...

    SQL优化实例讲解

    示例中,通过一个简单的循环结构,向`over_com`表中插入了100万条记录,展示了PL/SQL在处理大数据批量操作时的强大能力。 #### 三、Autotrace:索引性能验证利器 接下来,文章深入探讨了`Autotrace`功能在评估和...

    07mysql集群测试报告.pdf

    单线程功能测试则是对比100万条和1000万条数据的性能差异,这有助于理解数据库在不同数据规模下的响应速度。 大数据量下的读写性能对比测试,通过预先生成不同规模的数据,然后执行读写操作,观察性能变化,以便...

    mysql中迅速插入百万条测试数据的方法

    - 在PHP脚本中生成包含100万行数据的SQL文件,每一行数据使用制表符(`\t`)分隔各个字段,而不是逗号,因为`LOAD DATA INFILE`命令支持使用制表符作为字段分隔符。 - 使用`fwrite()`函数将数据写入SQL文件。 - ...

    sql分页查询几种写法

    而对于较大规模的数据(如10万条或100万条记录),`ROW_NUMBER()`和`MAX/TOP`方法通常表现更好。需要注意的是,实际应用中还需要考虑数据库的具体版本和表结构,以及索引的设置,这些因素都可能影响分页查询的效率。...

    SQL sever 实训

    --计算有多少种产品(假设为x),然后显示一条信息:共有X种产品 DECLARE @X int SET @X =(SELECT COUNT (*) FROM Product ) PRINT '共有'+convert (char(2),@x)+'种产品。' GO --编写计算n!(n=20)的程序,并...

    实现千万级数据的分页显示

    本文将详细介绍一种能够在5秒内获取1448万条记录中的第1200页共100条记录的方法。 #### 一、背景与需求分析 在现代数据密集型应用中,用户经常需要浏览大量数据,例如新闻列表、产品目录等。这些应用场景中,如果...

    coreseek在windows和linux下的使用.docx

    1. **导入测试数据**:使用提供的SQL脚本导入测试数据到MySQL数据库中。 2. **编写配置文件**:根据实际情况编写Sphinx的配置文件,例如`E:\coreseek\etc\mysql.conf`。 ```conf source mysql { type = mysql ...

    Guid和Int类型主键效率的比较

    实验主要分为两个部分:一是批量插入100万条记录到不同的表中,二是插入1万条记录,分别针对Int、GUID和varchar(36)(GUID的字符串表示形式)类型的主键进行测试,并记录下操作耗时。 #### 实验结果: - 当批量...

    mysql合并多条记录的单个字段去一条记录编辑

    在MySQL中,有时候我们需要将多条记录的某个字段值合并为一条记录,这在数据分析、报表生成或数据展示时非常常见。本篇文章将探讨两种不同的方法来实现这一目标,主要涉及`GROUP_CONCAT`函数的使用。 首先,我们来...

    hive_data.rar

    在大数据处理领域,Apache Hive是一个非常重要的工具,它提供了一个SQL-like接口来处理存储在Hadoop分布式文件系统(HDFS)中的大规模数据集。"hive_data.rar"这个压缩包文件显然是为Hive学习和测试而设计的,包含了...

Global site tag (gtag.js) - Google Analytics