MySQL에서는 세미콜론(;) 종결 기호를 사용하지 않고도 쿼리를 실행할 수 있는 내장 명령어가 제공됩니다. 대표적인 명령어로 \G와 \g가 있으며, 이 두 옵션은 문장 끝에 세미콜론을 붙이지 않아도 MySQL이 자동으로 문장의 끝을 인식하고 서버에 전송해 실행합니다.
\G (ego) 명령어 — 세로 형태로 결과 출력
\G 옵션은 현재 입력한 SQL 문장을 서버로 전송해 실행하고, 그 결과를 세로(vertical) 형식으로 화면에 표시합니다. 한 줄 또는 여러 줄로 작성된 문장에서 세미콜론을 생략하고 \G만 입력하면, MySQL은 \G를 만나는 시점을 문장의 끝으로 판단합니다. 특히 컬럼 수가 많거나 값이 긴 경우 가독성이 크게 향상되므로 실무에서 유용하게 활용됩니다.
mysql> Select * from ratelist\G
*************************** 1. row ***************************
Sr: 1
Item: A
Price: 502
*************************** 2. row ***************************
Sr: 2
Item: B
Price: 630
*************************** 3. row ***************************
Sr: 3
Item: C
Price: 1005
*************************** 4. row ***************************
Sr: 4
Item: h
Price: 850
*************************** 5. row ***************************
Sr: 5
Item: T
Price: 250
5 rows in set (0.00 sec)\g (go) 명령어 — 일반 테이블 형태로 결과 출력
\g 옵션 역시 현재 문장을 서버로 전송해 실행하는 역할을 합니다. 세미콜론(;)을 생략한 상태에서 \g를 입력하면 MySQL은 \g를 문장의 끝으로 인식합니다. 출력 결과는 세미콜론을 사용했을 때와 동일한 테이블(표) 형식으로 나타나며, 사실상 세미콜론과 같은 역할을 하는 종결 기호라고 볼 수 있습니다.
mysql> Select * from ratelist\g +----+------+-------+ | Sr | Item | Price | +----+------+-------+ | 1 | A | 502 | | 2 | B | 630 | | 3 | C | 1005 | | 4 | h | 850 | | 5 | T | 250 | +----+------+-------+ 5 rows in set (0.00 sec)
\G와 \g의 핵심 차이 정리
- \g: 세미콜론(;)과 동일하게 작동하며, 결과를 일반 테이블 형식으로 출력합니다.
- \G: 쿼리를 실행하되, 결과를 레코드별 세로 형식으로 출력해 넓은 테이블 조회 시 가독성을 높여줍니다.
두 명령어 모두 세미콜론 없이 쿼리를 종료하고 실행할 수 있다는 공통점이 있으므로, 상황에 맞게 선택하여 사용하면 됩니다.