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

MySQL에는 Oracle의 연결(Concatenation) 연산자에 해당하는 기능이 있을까?

Oracle에서는 || 연결(concatenation) 연산자를 사용해 문자열을 합칠 수 있습니다. 반면 MySQL은 연결 연산자 대신 CONCAT() 함수를 사용한다는 점이 가장 큰 차이입니다.

예제용 테이블 생성하기

CONCAT() 함수의 사용법을 이해하기 위해 먼저 간단한 테이블을 생성해 보겠습니다. 테이블 생성 쿼리는 다음과 같습니다.

mysql> create table ConcatenationDemo
-> (
-> Id int,
-> Name varchar(100)
-> );
Query OK, 0 rows affected (0.86 sec)

샘플 데이터 삽입

INSERT 문을 사용해 몇 개의 레코드를 추가해 보겠습니다.

mysql> insert into ConcatenationDemo values(100,'John');
Query OK, 1 row affected (0.19 sec)

mysql> insert into ConcatenationDemo values(101,'Sam');
Query OK, 1 row affected (0.25 sec)

mysql> insert into ConcatenationDemo values(102,'Johnson');
Query OK, 1 row affected (0.15 sec)

mysql> insert into ConcatenationDemo values(103,'Carol');
Query OK, 1 row affected (0.26 sec)

mysql> insert into ConcatenationDemo values(104,'Bob');
Query OK, 1 row affected (0.13 sec)

저장된 데이터 확인

SELECT 문으로 테이블의 모든 레코드를 조회해 보겠습니다.

mysql> select *from ConcatenationDemo;

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

+------+---------+
| Id | Name |
+------+---------+
| 100 | John |
| 101 | Sam |
| 102 | Johnson |
| 103 | Carol |
| 104 | Bob |
+------+---------+
5 rows in set (0.00 sec)

CONCAT() 함수로 문자열 연결하기

이제 MySQL에서 CONCAT() 함수를 사용해 여러 값을 하나의 문자열로 연결하는 방법을 살펴보겠습니다. 아래 예제에서는 Id와 Name 컬럼 값을 괄호와 쉼표 형식으로 묶어 출력합니다.

mysql> select concat('(',Id,',',Name,')') as ConcatIdAndName from ConcatenationDemo;

연결된 결과는 다음과 같습니다.

+-----------------+
| ConcatIdAndName |
+-----------------+
| (100,John) |
| (101,Sam) |
| (102,Johnson) |
| (103,Carol) |
| (104,Bob) |
+-----------------+
5 rows in set (0.00 sec)

이처럼 Oracle에서 '(' || Id || ',' || Name || ')'처럼 작성하던 코드를 MySQL에서는 CONCAT('(', Id, ',', Name, ')') 형태로 바꾸면 됩니다. CONCAT() 함수는 두 개 이상의 인자를 받아 모두 하나의 문자열로 합쳐 주며, 인자 중 하나라도 NULL이면 결과 역시 NULL을 반환한다는 점을 기억해 두면 좋습니다.