Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL 테이블에 난수 삽입하는 방법 – RAND() 함수 완벽 가이드

MySQL RAND() 함수로 난수 삽입하기

MySQL에서 테이블에 난수를 삽입하려면 내장 함수인 RAND()를 사용하면 됩니다. 이 함수는 0 이상 1 미만의 임의의 실수를 반환하며, FLOOR() 함수와 함께 사용하면 원하는 범위의 정수형 난수를 손쉽게 만들 수 있습니다. 아래에서 단계별로 살펴보겠습니다.

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단계: 난수로 값 업데이트

이제 UPDATE 문과 RAND() 함수를 사용해 기존 값을 난수로 변경합니다. 아래 예제는 사용자 변수 @number에 RAND()의 반환값을 곱한 뒤 FLOOR()로 정수화하고 1을 더하여, 1부터 @number까지 범위의 난수를 생성합니다.

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단계: 변경된 결과 확인

테이블의 레코드를 다시 한번 조회해 보겠습니다.

mysql> select *from DemoTable;

실행 결과는 다음과 같습니다.

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

추가 팁: 원하는 범위의 난수 만들기

UPDATE 문을 실행할 때마다 결과값은 매번 달라지며, 각 행에는 서로 다른 난수가 독립적으로 할당됩니다. 만약 특정 범위(예: 1~100)의 난수가 필요하다면 @number 변수에 상한값을 설정하거나, 아래처럼 직접 숫자를 지정하면 됩니다.

mysql> update DemoTable set Value=FLOOR(100 * rand()) + 1;

이렇게 하면 1부터 100 사이의 정수 난수가 각 행에 삽입됩니다. 로그 데이터 샘플링, 테스트 데이터 생성 등 다양한 상황에서 유용하게 활용할 수 있습니다.