MySQL에서 SELECT 쿼리가 많은 컬럼을 반환하면 터미널에서 테이블 형태의 가로 출력이 줄바꿈되어 결과를 읽기 매우 불편합니다. 이런 경우 세로(vertical) 형식으로 출력하면 각 행의 필드 값이 위아래로 정렬되어 훨씬 보기 좋습니다.
세로 출력 문법
쿼리 끝에 \G를 붙이면 됩니다. 세미콜론 대신 또는 세미콜론과 함께 사용할 수 있습니다.
SELECT * FROM yourTableName\G;
여기서 \G는 결과를 세로 방향으로 표시하는 역할을 하며, yourTableName 부분에는 실제 테이블 이름을 넣으면 됩니다.
예제 테이블 생성하기
위 문법을 직접 확인해 보기 위해 CREATE 명령어로 테이블을 만들어 보겠습니다.
mysql> create table TooManyFieldsreturnDemo -> ( -> Id int, -> Name varchar(100), -> Age int -> ); Query OK, 0 rows affected (0.64 sec)
샘플 데이터 삽입하기
INSERT 명령어를 사용해 테이블에 레코드를 추가합니다.
mysql> insert into TooManyFieldsreturnDemo values(1,'John',21); Query OK, 1 row affected (0.19 sec) mysql> insert into TooManyFieldsreturnDemo values(2,'Johnson',22); Query OK, 1 row affected (0.15 sec) mysql> insert into TooManyFieldsreturnDemo values(3,'Sam',23); Query OK, 1 row affected (0.10 sec) mysql> insert into TooManyFieldsreturnDemo values(4,'Carol',24); Query OK, 1 row affected (0.14 sec) mysql> insert into TooManyFieldsreturnDemo values(5,'David',25); Query OK, 1 row affected (0.12 sec)
\G 옵션 적용 후 실행 결과
이제 앞서 소개한 문법을 적용해 결과를 확인해 보겠습니다.
mysql> select *from TooManyFieldsreturnDemo\G;
실행 결과는 다음과 같습니다. 각 행이 세로로 정렬되어 어떤 필드에 어떤 값이 들어 있는지 한눈에 파악할 수 있습니다.
*************************** 1. row *************************** Id: 1 Name: John Age: 21 *************************** 2. row *************************** Id: 2 Name: Johnson Age: 22 *************************** 3. row *************************** Id: 3 Name: Sam Age: 23 *************************** 4. row *************************** Id: 4 Name: Carol Age: 24 *************************** 5. row *************************** Id: 5 Name: David Age: 25 5 rows in set (0.00 sec)
정리 및 추가 팁
\G는 MySQL 클라이언트의 쿼리 종결자(terminator) 중 하나로, 일반적인 세미콜론(;)처럼 쿼리를 실행하지만 결과를 세로 형식으로 출력한다는 차이가 있습니다. 컬럼이 많거나 값이 긴 경우(예: TEXT 타입 데이터) 특히 유용합니다.
참고로 \g는 세미콜론과 동일하게 가로 형식으로 출력되며, \G만 세로 출력을 지원합니다. 또한 mysql 클라이언트 내에서 pager less -S 명령어와 함께 사용하면 긴 결과도 스크롤하며 편리하게 볼 수 있습니다.