데이터 베이스/데이터베이스 기본

Ch01. 내부 조인 - 내부 조인(3)

webmaster 2026. 5. 24. 20:40

실무 : 조인 순서는 언제 중요할까?

 

내부 조인에서는 결과가 같으므로 어떤 순서로 작성해도 무방하다. 하지만 쿼리를 읽는 사람의 입장에서 어떤 데이터가 중심이 되는가 따라 순서를 정하면 가독성이 높아진다

  • 주문 목록을 중심으로 고객 정보를 추가하고 싶다면 "FROM orders JOIN users"
  • 고객 목록 중심으로 주문 정보를 조회하고 싶다면 "FROM users JOIN orders"
 "OUTER JOIN" 에서는 조인 순서가 결과에 매우 큰 영향을 미친다. 하지만 "INNER JOIN"에서는 교집합을 선택하기 때문에 순서와 상관없이 결과는 항상 같다

 

가독성을 높이는 테이블 별칭(Alias)

 

앞선 쿼리들을 보면 "users.user_id" , "orders.status" 처럼 테이블 이름을 계속 반복해서 작성해야 했다. 쿼리가 길어지고 복잡해질수록 이는 매우 번거롭고 가독성을 떨어뜨린다. 이럴 사용하는 것이 바로 테이블 별칭(Alias)이다. "AS" 키워드를 사용하거나, "AS"  생략하고 띄우고 원하는 별칭을 붙여주면 된다.

 

select 
	o.order_id,
    o.order_date,
    o.user_id as orders_user_id,
    u.User_id as users_user_id,
    u.name
from orders as o -- 테이블 별칭은 보통 생략 
inner join users as u 
on o.user_id = u.user_id
order by order_id
;
  • orders AS o : "orders" 테이블에 "o" 라는 별칭을 붙였다.
  • users AS u : "users" 테이블에 "u" 라는 별칭을 붙였다.
  • 이제 "orders.status" 대신 "o.status" , "users.name" 대신 "u.name"  같이 간결하게 컬럼을 지정할 있다.

실무에서는 AS 생략

select 
	o.order_id,
    o.order_date,
    o.user_id as orders_user_id,
    u.User_id as users_user_id,
    u.name
from orders as o -- 테이블 별칭은 보통 생략 
join users as u 
on o.user_id = u.user_id
order by order_id
;

 

  •  "FROM orders o" 처럼 테이블 이름 뒤에 한 칸 띄고 별칭을 적는 것만으로도 충분하다. 이 방식이 더 간결하기 때문에 실무 개발자들이 선호하는 스타일이다.
  • "INNER JOIN"에서 "INNER 는 생략 가능하므로 "JOIN" 만 사용해도 된다. (그냥 `JOIN` 이라고 하면 자동으로 "INNER JOIN"이 된다.)
  • 실무에서는 대부분 "INNER JOIN" 을 사용할 때 "INNER" 는 생략하고 "JOIN" 만 사용한다.

 

테이블에는 컬럼의 별칭 AS 생략, 컬럼은 생략 X

SELECT salary * 12 annual_salary  -- 가독성 낮음
SELECT salary * 12 AS annual_salary -- 가독성 높음

테이블 별칭 (AS 생략)

  • 테이블 이름 뒤에 오는 별칭은 문법적으로 혼동의 여지가 거의 없다. "FROM table_name alias_name" 과 같이 "AS" 없이 써도 코드를 읽고 해석하는 문제가 되지 않는다. 따라서 코드를 간결하게 만들기 위해 "AS" 생략하는 경우 많다.
  • 예를 들어, "FROM employees e"  "FROM employees AS e"  동일하게 작동하며, 짧고 깔끔하게 보인다.

컬럼 별칭(AS 사용)

  • 반면, 컬럼 목록에서는 "AS" 를 생략하면 어떤 것이 원래 컬럼 이름이고 어떤 것이 별칭인지 즉시 파악하기 어려울 수 있다.
  • 특히 여러 컬럼을 나열하거나 복잡한 함수를 사용할 "AS"  명시적으로 써주면 코드의 의도를 명확하게 전달하여 가독성을 크게 향상시킨다