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

MySQL 사용자 변수란 무엇이고, 값을 할당하는 방법은?

MySQL의 사용자 변수(user variable)@변수명 형태로 작성되며, 정수, 실수, 문자열 또는 NULL 값을 저장할 수 있습니다. 사용자 변수에 값을 할당할 때는 SET 문을 사용하며, 이때 대입 연산자로 = 또는 := 중 하나를 선택해 사용할 수 있습니다.

SET 문으로 값 할당하기

다음 예제는 SET 문을 이용해 사용자 변수 A에는 숫자 100을, 변수 B에는 문자열 'MySQL'을 각각 할당하는 방법을 보여줍니다.

mysql> SET @A = 100;
Query OK, 0 rows affected (0.00 sec)

mysql> Set @B = 'MySQL';
Query OK, 0 rows affected (0.00 sec)

할당된 변수의 값은 SELECT 문으로 간단히 확인할 수 있습니다.

mysql> Select @A, @B;
+------+-------+
| @A   | @B    |
+------+-------+
| 100  | MySQL |
+------+-------+
1 row in set (0.05 sec)

여러 변수를 한 번에 할당하기

쉼표(,)로 구분하면 하나의 SET 문에서 여러 개의 변수에 동시에 값을 할당할 수도 있습니다.

mysql> SET @X = 'Ram',@Y = 'Shyam',@Z = 'Students', @S = 5000;
Query OK, 0 rows affected (0.00 sec)

mysql> Select @X, @Y, @Z, @S;
+------+-------+----------+------+
| @X   | @Y    | @Z       | @S   |
+------+-------+----------+------+
| Ram  | Shyam | Students | 5000 |
+------+-------+----------+------+
1 row in set (0.00 sec)

SELECT 문으로 값 할당하기

SELECT 문을 통해서도 사용자 변수에 값을 할당할 수 있습니다. 다만 이 경우에는 반드시 := 연산자만 사용해야 하며, = 연산자는 비교 연산으로 해석되므로 사용할 수 없습니다.

mysql> SELECT @C := 'Tutorialspoint';
+------------------------+
| @C := 'Tutorialspoint' |
+------------------------+
| Tutorialspoint         |
+------------------------+
1 row in set (0.00 sec)

mysql> SELECT @C;
+----------------+
| @C             |
+----------------+
| Tutorialspoint |
+----------------+
1 row in set (0.00 sec)

정리하면, MySQL 사용자 변수는 세션 단위로 유지되는 임시 저장 공간으로, SET 문에서는 =:= 모두 사용 가능하지만 SELECT 문에서는 :=만 사용해야 한다는 점을 기억하면 됩니다.