Search

REMINDER 02-07. 테이블 별칭과 SQL ID로 SQL을 명확하게 작성하자

상황: 주문번호·회원 ID·회원 닉네임을 JOIN으로 조회한다.

BAD SQL

SELECT o.ord_no ,mbr_id ,m.nick_nm FROM tr_ord_big o JOIN ms_mbr_big m ON m.mbr_id = o.mbr_id WHERE mbr_id = 'M00019';
SQL
복사
•
JOIN에 참여하는 두 테이블에 mbr_id가 있는데 컬럼 앞에 별칭이 없어 어느 테이블의 컬럼인지 불명확하다.
•
이 SQL은 해당 컬럼 참조가 모호하여 PostgreSQL에서 ambiguous column 오류가 발생할 수 있다. 원문에는 실측 실행계획이 없다.

GOOD SQL

/* SQL_ID: ORD-MBR-001 */ SELECT o.ord_no ,o.mbr_id ,m.nick_nm FROM tr_ord_big o JOIN ms_mbr_big m ON m.mbr_id = o.mbr_id WHERE o.mbr_id = 'M00019';
SQL
복사
•
o.mbr_id, m.nick_nm처럼 컬럼마다 테이블 별칭을 명시하면 소속이 분명해진다.
•
SQL_ID 주석은 SQL 식별·추적을 돕는 프로젝트 작성 규칙의 예시다.

핵심

•
JOIN SQL에서는 컬럼마다 테이블 별칭을 붙여 명확하게 작성하자.
•
SQL ID 등 식별자 표기 규칙도 프로젝트 내에서 일관되게 적용하자.
💡
참고
•
원문은 테이블 별칭에 AS를 쓰지 않는 작성 규칙을 권장한다(Oracle·MySQL·PostgreSQL에서 공통으로 사용할 수 있는 문법).
•
별칭이나 SQL ID 주석 자체가 실행 성능을 높여 주는 것은 아니다. 실제 JOIN 방식은 실행계획에 따라 달라진다.
•
ORD-MBR-001은 예시이며 식별자 형식은 프로젝트 규칙에 맞춘다. 이 항목의 BAD/GOOD 실측 실행계획은 원문에 제공되지 않았다.