skillup

技術ブログ

Database

データベースによるテストデータ作成

投稿日:

テスト環境を作る際に、テストデータを作るのが面倒・・・なんかライブラリでもないかな・・と思っていたんですが、MySQLでいろいろと簡単にできます。

数字

rand()は通常のプログラムと同じで0~1での数字を任意に出力します。当然100のところを好きな数字にしてあげれば1~その数までとなります。

任意の文字

ランダムな半角英数字を作れます。上記の例は1~10まで。パスワードと同じ原理かと思います。concatを使えばさらに任意の文字と組み合わせることができます。

日付

date_addは下記リンクを参考に。

http://mysql.recipe123.net/man/sub/functions/function_date-add.html

一番最後の構文は説明が必要でしょう。

contact_wsは単純な連結です。

addtimeは任意の日付の加算を行うことができます。加算式がやや複雑です。

http://www.w3resource.com/mysql/date-and-time-functions/mysql-addtime-function.php

私が説明するよりこのリンクがはるかにわかりやすい・・英語ですが、式だけでわかると思います。

sec_to_time

数字をHH:MM:SSで表記します。

http://www9.atwiki.jp/my-sql/pages/132.html

date_formatはその名のとおり通常のフォーマットです。

日付に関しては結構いろいろなことができるのでもっと知っておけばよかったです・・・

参考

テストのダミーデータ作成

ちょうど去年書きましたが、めちゃくちゃ役に立ちました。リンクが(爆)

http://qiita.com/tayasu/items/c5ddfc481d6b7cd8866d

この記事自体ここのパクリに近いです(爆)。

-Database
-,

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

SQLのチューニングに関して

ここ2か月ぐらいはSQLの本でがりがり勉強してきましたね。当然復習も必要かと思いますが、だいぶいろんなことを覚えたなあという気がします。 一番勉強になった本はもちろん「達人に学ぶ SQL徹底指南書」と …

no image

SQLで数列を扱う

今回はSQLで数列を扱ってみましょう。 例えば下記のような0から9までの数字が書かれている数列があったとして、 これにより連番を作成してみましょう。 digit ——- 0 1 …

no image

SQL基礎 結合に関して

SQL実践入門を読んで勉強しておりますが、本日は結合に関して。 Contents1 クロス結合2 内部結合3 外部結合4 結合のアルゴリズムとパフォーマンス4.1 NestedLoops4.2 Has …

no image

SQLの高速化について&explain

本日はSQLの高速化について。 高速化といってもさまざまなテクがあると思うのですが、代表的な考え方に関して。 Contents1 高速化に関して1.1 index1.2 ディスクアクセスを減らす1.3 …

no image

サブクエリの使い方

以前も少し学習しましたが、今回からはサブクエリの扱い方です。特に異なった行の比較(年度計算など)に関して行われる自己結合をつかったものが非常に強力です。 例によってここを学習しています。 下記のような …