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

MySQL이 명령문의 끝을 판단하는 방법 완벽 정리

MySQL은 클라이언트가 입력한 SQL 명령문이 어디에서 끝나는지 특정 기준에 따라 판단합니다. 명령문이 한 줄이든 여러 줄에 걸쳐 있든 상관없이, MySQL은 아래 세 가지 중 하나를 만나는 순간 해당 명령문의 끝으로 인식하고 서버로 전송하여 실행합니다.

1. 세미콜론 (;)

가장 일반적인 방식은 종결 문자인 세미콜론(;)을 만나는 순간 명령문의 끝으로 판단하는 것입니다. 명령문이 한 줄로 작성되었는지, 여러 줄에 걸쳐 작성되었는지는 중요하지 않습니다.

mysql> Select * from employee;  -- 한 줄 명령문

mysql> Select *
    -> from
    -> employee;  -- 여러 줄 명령문

위 두 예제 모두 MySQL이 세미콜론을 만나야만 비로소 명령문이 완결되었다고 인식하고 결과 집합(result set)을 반환합니다. 즉, 세미콜론이 없으면 MySQL은 계속해서 입력을 대기합니다.

2. \G 옵션

\G 옵션은 현재까지 입력된 명령문을 서버로 전송해 실행하되, 결과를 세로(vertical) 형식으로 출력하라는 의미입니다. 세미콜론(;) 없이 \G를 사용하면, MySQL은 \G를 만나는 순간 명령문의 끝으로 판단합니다.

mysql> Select * from Student\G
*************************** 1. row ***************************
  Name: Gaurav
RollNo: 100
 Grade: B.tech
*************************** 2. row ***************************
  Name: Aarav
RollNo: 150
 Grade: M.SC
*************************** 3. row ***************************
  Name: Aryan
RollNo: 165
 Grade: M.tech
3 rows in set (0.00 sec)

컬럼이 많거나 값이 길어서 가로 방향 테이블 출력이 화면에 맞지 않을 때, 이처럼 각 행을 세로로 펼쳐 보여주는 \G 옵션이 매우 유용합니다.

3. \g 옵션

\g 옵션 역시 현재까지 입력된 명령문을 서버로 전송하여 실행하라는 의미입니다. 세미콜론 없이 \g를 사용하면 MySQL은 \g를 만나는 시점에 명령문이 끝났다고 판단하며, 세미콜론(;)을 사용했을 때와 동일한 표 형식으로 결과를 출력합니다.

mysql> Select * from Student\g
+--------+--------+--------+
| Name   | RollNo | Grade  |
+--------+--------+--------+
| Gaurav | 100    | B.tech |
| Aarav  | 150    | M.SC   |
| Aryan  | 165    | M.tech |
+--------+--------+--------+
3 rows in set (0.00 sec)

정리

MySQL에서 명령문의 끝을 알리는 방법은 크게 세 가지입니다. 기본적으로는 세미콜론(;)을 사용하고, 결과를 세로 형태로 보고 싶다면 \G, 일반 표 형식 그대로 실행만 하고 싶다면 \g를 사용하면 됩니다. 세 가지 모두 세미콜론을 대체할 수 있는 종결 문자 역할을 한다는 점을 기억해 두면 좋습니다.