MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLのテーブルに乱数を挿入する方法【RAND()関数の使い方】

MySQLでテーブルに乱数を挿入したい場合は、RAND()関数を使用します。この記事では、実際にテーブルを作成し、RAND()関数を使って乱数を格納する手順を順番に解説していきます。

1. テーブルを作成する

まずは、値を格納するためのテーブルを作成しましょう。

mysql> create table DemoTable
(
    Value int
);
Query OK, 0 rows affected (0.46 sec)

2. サンプルデータを挿入する

INSERTコマンドを使って、いくつかのレコードをテーブルに追加します。

mysql> insert into DemoTable values(10);
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable values(20);
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable values(30);
Query OK, 1 row affected (0.08 sec)

3. 挿入したデータを確認する

SELECT文ですべてのレコードを表示してみましょう。

mysql> select *from DemoTable;

実行すると、以下のような結果が出力されます。

+-------+
| Value |
+-------+
|    10 |
|    20 |
|    30 |
+-------+
3 rows in set (0.00 sec)

4. RAND()関数で乱数に更新する

それでは、RAND()関数とFLOOR()関数を組み合わせて、既存の値を乱数に置き換えてみましょう。ここでは、ユーザー定義変数「@number」の範囲内で1以上の整数乱数を生成しています。

mysql> update DemoTable set Value=FLOOR(@number * rand()) + 1;
Query OK, 3 rows affected (0.17 sec)
Rows matched: 3 Changed: 3 Warnings: 0

5. 更新後のデータを確認する

もう一度SELECT文を実行して、テーブルの中身を確認します。

mysql> select *from DemoTable;

実行結果は以下の通りです。

+-------+
| Value |
+-------+
|     2 |
|     2 |
|     1 |
+-------+
3 rows in set (0.00 sec)

ポイント解説

  • RAND():0以上1未満のランダムな浮動小数点数を返すMySQLの関数です。
  • FLOOR():引数として渡した数値以下の最大の整数を返します。
  • FLOOR(@number * rand()) + 1:@numberに上限値を設定することで、1〜@numberの範囲の整数乱数を生成できます。

なお、RAND()は行ごとに評価されるため、複数行を更新すると各行に異なる乱数が割り当てられます(ただし、同じ値になることもあります)。特定の範囲の乱数が必要な場合は、上記のように変数や固定値を掛け算して調整してください。

  1. JavaのPreparedStatementを使ってMySQLテーブルにレコードを挿入する方法

    JavaのPreparedStatementを使用してMySQLのテーブルにレコードを挿入するには、まずINSERT文の雛形を作成し、値の部分をプレースホルダー(?)で置き換えます。SQLインジェクション対策やパフォーマンス向上の観点からも、この方法は推奨されています。1. INSERT文の基本構文レコード挿入用のSQLは、以下のような構文で記述します。String anyVariableName = INSERT INTO yourTableName(yourColumnName1, yourColumnName2, yourColumnName3, ...N) + VALUES (?, ?

  2. MySQLのINSERT INTO SELECT構文でAUTO_INCREMENTテーブルにデータを挿入する方法

    はじめにMySQLでは、INSERT INTO ... SELECT構文を使うことで、SELECT文の結果をそのまま別のテーブルへ挿入できます。AUTO_INCREMENT列を持つテーブルに対しても、SELECT句で明示的に値を指定すれば、任意のIDを設定した状態で挿入が可能です。本記事では、AUTO_INCREMENT主キーを持つテーブルに、INSERT INTO SELECT文で具体的な値を挿入する手順を、サンプルコードと実行結果とともに解説します。テーブルの作成まず、次のようにテーブルを作成します。mysql> create table DemoTable1923 &nb