10
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

はじめに

SQLのtips記事です。
大量データを使ってテストしたい場合に実際に利用したSQLを紹介しています。

件数倍増SQL

0件のempテーブルの件数を増殖するSQLです。
2つ目のSQLを実行する毎に、データ件数が2件、4件、8件、、、と倍々で増えていきます。

INSERT INTO emp VALUES (1); -- 最初の1件
INSERT INTO emp SELECT id+(SELECT count(*) FROM emp) FROM emp; -- 実行毎に倍増する

その他データ作りに役立つこともある関数

  • ROWNUM(Oracle)
    取得件数毎に一意にナンバリングしてくれるので、採番で便利です
    select rownum from emp
  • mod
    rownum等と組み合わせることで、余りの値でグルーピング・属性を分けることができます
    SELECT id,mod(id,10) FROM emp
  • trunc(dbms_random.value*n)
    random関数は0~1の値を取るので、n倍(1000倍など)してtruncすることで特定の範囲の整数値をランダムに生成できます。

おわりに

これで突然「○○を満たす大量データを明日までに作って」と無茶ぶりされても
大丈夫なはず、です。お役に立てば幸いです。

10
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?