SQL 쿼리를 작성하다보면 같은 구문이더라도 세미콜론의 유무의 따라 조회되는 값이 다르고 심지어 실행이 안되는 경우도 있었다. 이 부분에 궁금증이 생겨서 알아보았다.
세미콜론(;)
SQL에서 세미콜론(;)의 사용은 일반적으로 쿼리 구문의 끝을 나타내고, 여러 쿼리를 한 번에 실행할 때 각 구문을 구분하는 역할을 한다.
1. 세미콜론 사용의 필요성
- 명령의 끝을 알림 : SQL 표준에서는 각 구문의 끝을 ;로 명시해야 한다. MySQL과 같은 SQL 엔진에서는 한 구문을 명확히 종료하고 다음 구문으로 넘어가도록 요구할 수 있다.
- 다중 구문 실행 : 여러 구문을 한 번에 실행할 때, 세미콜론이 없으면 SQL 엔진이 구문을 구분할 수 없어 오류가 발생할 수 있다. 특히 스크립트 파일에서 여러 SQL 명령을 실행할 때는 세미콜론이 필요하다.
2. 세미콜론을 사용하지 않아도 되는 경우
- 대화형 콘솔(MySQL, PostgreSQL 등)에서 단일 명령어를 입력할 때는 세미콜론이 없어도 자동으로 실행되는 경우가 있다. 하지만 명령어가 여러 줄에 걸쳐 입력되는 경우 세미콜론이 필요할 수 있다.
3. 언제 세미콜론을 꼭 써야 할까?
- SQL 스크립트 파일 : 여러 쿼리를 작성하여 한번에 실행할 때는 반드시 세미콜론을 사용해 각 구문을 명확히 구분해야 한다.
- 플랫폼의 특성 : 특정 SQL 환경에서는 세미콜론이 필수이다. PostgreSQL에서는 세미콜론을 생략할 경우 쿼리가 제대로 실행되지 않을 수 있다.
4. 세미콜론을 효과적으로 사용하는 방법
- 항상 세미콜론을 붙이는 습관 : 구문마다 세미콜론을 붙여서 쿼리를 작성하는 습관을 가지면 다양한 SQL 플랫폼에서 호환성 문제가 줄어든다.
- IDE 및 콘솔에서의 테스트 : 세미콜론이 필요한 경우와 그렇지 않은 경우를 IDE나 SQL 콘솔에서 실험해보면서 환경에 익숙해지면 더 명확히 이해할 수 있다.
백틱 (`)
SQL에서 백틱(`)은 식별자 구분 시 사용한다.
MySQL의 키워드 혹은 예약어를 DB, 테이블, 컬럼 등에 사용 시 이는 키워드나 예약어가 아님을 구분하고자 백틱을 사용한다.
MySQL 백틱 예제