Oracle에서는 앰퍼샌드(&)를 사용한 변수 치환이 기본적으로 지원되지만, MySQL에서는 이 방식이 작동하지 않습니다. MySQL에서 동일한 기능을 구현하려면 @ 기호를 사용한 사용자 정의 변수를 활용해야 합니다.
MySQL에서 @ 변수를 사용하는 방법
MySQL에서는 SET 문으로 변수에 값을 할당한 후, 해당 변수를 INSERT 문에 그대로 사용할 수 있습니다. 기본 구문은 다음과 같습니다.
SET @yourVariableName1 = yourValue, @yourVariableName2 = yourValue, @yourVariableName3 = yourValue, .........N; insert into yourTableName values(@yourVariableName1, @yourVariableName2, @yourVariableName3, ........N);
예제 테이블 생성
위 구문을 실제로 이해하기 위해 먼저 테이블을 생성해 보겠습니다. 테이블 생성 쿼리는 다음과 같습니다.
mysql> create table Student_Information -> ( -> StudentId int, -> StudentName varchar(100), -> StudentAge int, -> StudentMarks int, -> StudentCountryName varchar(10) -> ); Query OK, 0 rows affected (0.75 sec)
@ 변수를 사용한 데이터 삽입
이제 각 값 앞에 @를 붙여 변수를 설정하고, INSERT 명령으로 레코드를 삽입해 보겠습니다.
mysql> SET @Id = 10001, @Name = 'Carol', @Age = 23, @Marks = 89, @CountryName = 'US'; Query OK, 0 rows affected (0.00 sec) mysql> insert into Student_Information values(@Id, @Name, @Age, @Marks, @CountryName); Query OK, 1 row affected (0.19 sec)
결과 확인
SELECT 문을 사용하여 테이블의 모든 레코드를 조회할 수 있습니다.
mysql> select * from Student_Information;
실행 결과는 다음과 같습니다.
+-----------+-------------+------------+--------------+--------------------+ | StudentId | StudentName | StudentAge | StudentMarks | StudentCountryName | +-----------+-------------+------------+--------------+--------------------+ | 10001 | Carol | 23 | 89 | US | +-----------+-------------+------------+--------------+--------------------+ 1 row in set (0.00 sec)
정리
Oracle은 SQL*Plus 환경에서 & 치환 변수를 지원하지만, MySQL에는 이러한 기능이 없습니다. 대신 MySQL의 사용자 정의 변수(@변수명)를 사용하면 동일하게 값을 저장하고 재사용할 수 있습니다. 이 방식은 세션 내에서 유효하며, 복잡한 쿼리에서 값을 반복해서 사용할 때 특히 유용합니다.