Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

MySQL 사용자 변수의 속성은 무엇입니까?


다음은 MySQL 사용자 변수의 속성입니다. −

대소문자를 구분하지 않음

사용자 변수는 대소문자를 구분하지 않습니다. MySQL 5 버전 이전에는 대소문자를 구분합니다. 다음 예에서 설명할 수 있습니다. -

예시

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

mysql> Select @A, @a;
+-------+-------+
| @A    | @a    |
+-------+-------+
| MySQL | MySQL |
+-------+-------+
1 row in set (0.00 sec)

클라이언트 연결 전용

실제로 사용자 변수는 사용되는 클라이언트 연결에만 해당되며 해당 연결 기간 동안에만 존재합니다. 연결이 종료되면 모든 사용자 변수가 손실됩니다.

표현식에서만 작동

사용자 변수는 표현식이 허용되는 경우에만 나타날 수 있습니다. 상수 또는 리터럴 식별자가 표시된 위치에 나타날 수 있습니다. 테이블 이름을 제공하기 위해 사용자 변수를 사용하려는 예를 따라 설명하겠습니다.

예시

mysql> Set @table_name = CONCAT('tbl_','Employee');
Query OK, 0 rows affected (0.00 sec)

mysql> Create Table @table_name(Id Int);
ERROR 1064 (42000): You have an error in your SQL syntax near '@table_name(Id Int)'
근처의 SQL 구문 오류

새 값이 할당되면 손실됨

사용자 변수에 새 값을 할당하면 해당 값이 손실됩니다. 즉, 주어진 사용자 변수의 값은 다른 값을 할당할 때까지 지속됩니다. 다음 예는 그것을 보여줄 것입니다 -

예시

mysql> SET @name = 'Rahul';
Query OK, 0 rows affected (0.00 sec)

mysql> Select @name;
+-------+
| @name |
+-------+
| Rahul |
+-------+
1 row in set (0.00 sec)

이때 변수 @name은 'Rahul' 값을 가지지만 값을 'Raman'으로 변경하면 이전 값이 손실됩니다.

mysql> SET @name = 'Raman';
Query OK, 0 rows affected (0.00 sec)

mysql> Select @name;
+-------+
| @name |
+-------+
| Raman |
+-------+
1 row in set (0.00 sec)