SQL 테이블 ALIAS 규칙은 딱히 표준이라고 할만한 것이 없고, 개발자마다 선호하는 규칙이 많이 다르다. 각 규칙 별 장단점과 어떤 규칙이 제일 추천할만한지 알아보도록 하자.
알파벳 순차 할당
SELECT a.user_id, b.order_date FROM users a JOIN orders b ON a.user_id = b.user_id JOIN products c ON b.product_id = c.product_id;
장점
단점
나의 의견
제일 많이 보이는 방법이지만 내가 제일 싫어하는 방법이기도 하다.
a, b, c 정도 까지는 보기도 괜찮고, ALIAS명 고민하지 않아도 되서 좋지만 e, f, g, h, i 정도 까지 가면 지옥이 펼쳐진다.
SQL을 작성하다가 "e가 무슨 테이블이었지?" 하고 다시 확인하고 오고, "f는 무슨 테이블이었지?" 하고 또 확인하고 오고...
SQL에서 참조하는 테이블 수는 언제든지 늘어날 수 있기 때문에 이 방법은 되도록 쓰지 않아야 한다고 본다.
각 단어 첫 글자 사용
SELECT ui.user_name, od.order_date FROM user_info ui JOIN order_details od ON ui.user_id = od.user_id;
장점
1. 테이블 이름과 관련이 있기 때문에 기억하기 쉽다.
2. 길이도 적당하고, 간결하다.
단점
1. 테이블 이름이 길면 ALIAS명도 복잡해진다.
2. 테이블 이름이 비슷하면 ALIAS명이 같을 수도 있어서 뒤에 추가적인 구분자를 붙여야 한다. (실무에서 꽤 자주 발생함)
나의 의견
한 때 제일 좋아했던 방법이지만 이 방법을 선호하지 않는 개발자들도 많은 것 같다. 테이블 이름이 비슷하면 ALIAS명도 같아지는 경우가 많기 때문에 이 방법도 되도록 쓰지 않아야 한다고 본다.
ALIAS 사용하지 않음
SELECT users.user_id, orders.order_date FROM users JOIN orders ON users.user_id = orders.user_id;
장점
단점
나의 의견
지금까지 딱 한 번 봤다...
테이블 이름 축약 또는 의미 있는 약어 사용
SELECT cust.name, ord.amount FROM customers cust JOIN orders ord ON cust.id = ord.customer_id;
장점
1. 테이블 이름과 관련이 있기 때문에 기억하기 쉽다.
2. 길이도 적당하고, 간결하다.
단점
나의 의견
단점이 너무 치명적이긴 하지만 이 방법이 제일 좋다고 생각한다.