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()は行ごとに評価されるため、複数行を更新すると各行に異なる乱数が割り当てられます(ただし、同じ値になることもあります)。特定の範囲の乱数が必要な場合は、上記のように変数や固定値を掛け算して調整してください。
-
JavaのPreparedStatementを使ってMySQLテーブルにレコードを挿入する方法
JavaのPreparedStatementを使用してMySQLのテーブルにレコードを挿入するには、まずINSERT文の雛形を作成し、値の部分をプレースホルダー(?)で置き換えます。SQLインジェクション対策やパフォーマンス向上の観点からも、この方法は推奨されています。1. INSERT文の基本構文レコード挿入用のSQLは、以下のような構文で記述します。String anyVariableName = INSERT INTO yourTableName(yourColumnName1, yourColumnName2, yourColumnName3, ...N) + VALUES (?, ?
-
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