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

MySQL을 대화형 모드와 배치 모드로 실행할 때 기본 출력 형식의 차이

MySQL에서 동일한 쿼리를 대화형(interactive) 모드로 실행하느냐, 아니면 배치(batch) 모드로 실행하느냐에 따라 기본 출력 형식이 달라집니다. 이 차이를 미리 알아 두면 스크립트 작성이나 쿼리 결과 처리 시 발생할 수 있는 혼란을 줄일 수 있습니다.

대화형 모드에서의 출력 형식

mysql 클라이언트에 직접 접속해 쿼리를 입력하는 대화형 모드에서는 결과가 표 형태의 테두리와 함께 출력됩니다. 예를 들어 다음 쿼리를 실행하면 아래와 같은 형식으로 결과가 표시됩니다.

mysql> select * from hh;

+------+
| id   |
+------+
|    1 |
|    2 |
+------+
2 rows in set (0.01 sec)

테두리 선뿐만 아니라 조회된 행의 개수와 쿼리 소요 시간 같은 추가 정보도 함께 출력되어 사람이 눈으로 결과를 확인하기에 매우 편리합니다.

배치 모드에서의 출력 형식

반면 SQL 파일을 리디렉션(<)하여 배치 모드로 실행하면 출력 형식이 완전히 달라집니다. 테두리나 여백 없이 값들이 탭(tab)으로 구분된 최소한의 형태로만 출력됩니다.

C:\Program Files\MySQL\bin> mysql -u root -p gaurav < hh.sql
Enter password: *****

id
1
2

출력 형식이 다른 이유

대화형 모드는 사용자가 화면에서 결과를 직관적으로 읽을 수 있도록 ASCII 테두리와 부가 정보를 포함하는 반면, 배치 모드는 셸 스크립트나 다른 프로그램에서 결과를 파싱하기 쉽도록 불필요한 장식을 제거한 출력을 제공하기 때문입니다.

만약 배치 모드에서도 표 형식의 출력이 필요하다면 -t 또는 --table 옵션을 함께 사용하면 됩니다. 반대로 대화형 모드에서 탭 구분 형식의 출력을 원한다면 -N(헤더 생략), -B(탭 구분 출력) 같은 옵션을 활용할 수 있습니다.