프로그래밍/MySQL

📊 [SQL] 제29장 Alias(별칭) - 이름이 너무 길어요!

강릉바다의 블로그 2026. 7. 8. 13:00

제29장. Alias(별칭)

"이름이 너무 길어요!"


학습 목표

이번 장을 학습하면 다음 내용을 할 수 있습니다.

  • Alias(별칭)의 의미를 이해할 수 있다.
  • 테이블 이름을 짧게 표현할 수 있다.
  • 컬럼 이름에 새로운 제목을 붙일 수 있다.
  • 여러 테이블을 JOIN할 때 SQL을 더욱 읽기 쉽게 작성할 수 있다.

왜 Alias가 필요할까요?

지금까지 우리는 여러 개의 테이블을 JOIN했습니다.

예를 들어

SELECT Customers.CustomerName,
       Orders.OrderDate,
       Products.ProductName,
       Suppliers.SupplierName
FROM Customers
INNER JOIN Orders
    ON Customers.CustomerID = Orders.CustomerID
INNER JOIN OrderDetails
    ON Orders.OrderID = OrderDetails.OrderID
INNER JOIN Products
    ON OrderDetails.ProductID = Products.ProductID
INNER JOIN Suppliers
    ON Products.SupplierID = Suppliers.SupplierID;

문법은 어렵지 않습니다.

하지만

읽기가 조금 힘들어졌습니다.


가장 많이 하는 말

처음 JOIN을 배울 때는

Customers.CustomerName

도 괜찮습니다.

하지만

JOIN이 많아질수록

Customers.CustomerName

Orders.OrderDate

Products.ProductName

Suppliers.SupplierName

처럼

계속 긴 이름을 입력해야 합니다.

학생들은 대부분 이렇게 말합니다.

"SQL보다 이름 쓰는 시간이 더 오래 걸려요."

 

바로 이 문제를 해결하는 것이 Alias입니다.


Alias란?

Alias는

"임시로 사용하는 별명"

입니다.

예를 들어

Customers를

Customers
↓
C

라고 부를 수 있습니다.

Orders는

Orders
↓
O

Products는

Products
↓
P

처럼 사용할 수 있습니다.


실행 결과는 같습니다.

다음 두 SQL은

결과가 완전히 같습니다.


Alias 없이

SELECT Customers.CustomerName,
       Orders.OrderDate
FROM Customers
INNER JOIN Orders
    ON Customers.CustomerID = Orders.CustomerID;

Alias 사용

SELECT C.CustomerName,
       O.OrderDate
FROM Customers AS C
INNER JOIN Orders AS O
    ON C.CustomerID = O.CustomerID;

실행 결과는 동일합니다.

단지

SQL이 훨씬 짧아졌습니다.


SQL를 한 줄씩 살펴보기

FROM Customers AS C

Customers를

앞으로는

"C"

라고 부르겠다는 의미입니다.


INNER JOIN Orders AS O

Orders를

"O"

라고 부릅니다.


ON C.CustomerID = O.CustomerID

이제

Customers.CustomerID 대신

C.CustomerID를 사용합니다.


AS는 생략할 수도 있습니다.

다음 두 문장은 같습니다.

FROM Customers AS C
FROM Customers C

MySQL에서는

둘 다 사용할 수 있습니다.

하지만

이 교재에서는

초보자가 이해하기 쉽도록

AS를 사용하는 방법을 권장합니다.


예제 2. 여러 테이블 JOIN

Alias의 진짜 힘은

여러 테이블을 JOIN할 때 나타납니다.

SELECT C.CustomerName,
       O.OrderDate,
       P.ProductName
FROM Customers AS C
INNER JOIN Orders AS O
    ON C.CustomerID = O.CustomerID
INNER JOIN OrderDetails AS OD
    ON O.OrderID = OD.OrderID
INNER JOIN Products AS P
    ON OD.ProductID = P.ProductID;

이제 SQL가 훨씬 읽기 쉬워졌습니다.


컬럼에도 Alias를 사용할 수 있습니다.

결과 제목을 바꾸고 싶다면

컬럼에도 Alias를 사용할 수 있습니다.

SELECT CustomerName AS 고객명,
       Country AS 국가
FROM Customers;

실행 결과

고객명 국가
Alfreds Futterkiste Germany
Around the Horn UK

실제 컬럼 이름은 변하지 않습니다.

결과 화면에만

새로운 제목이 표시됩니다.


실제 업무에서는?

보고서를 만들 때

다음처럼 많이 사용합니다.

SELECT CustomerName AS 고객명,
       OrderDate AS 주문일,
       ProductName AS 상품명

사용자가 이해하기 쉬운 제목을

만들 수 있습니다.


Alias 이름은 어떻게 정할까요?

보통은

테이블 이름의 첫 글자를 사용합니다.

테이블 Alias
Customers C
Orders O
OrderDetails OD
Products P
Suppliers S
Categories CA
Employees E
Shippers SH

특히 OrderDetails처럼 이름이 긴 테이블은 OD처럼 두 글자를 사용하는 경우가 많습니다. 이렇게 하면 Orders의 O와도 구분하기 쉽습니다.

"Alias는 생략이 아니라 의미를 담는 이름이다."

실무에서는 한 글자 별칭만 사용하는 경우도 있지만, 프로젝트가 커질수록 조금 더 의미 있는 별칭을 사용하는 경우도 많습니다.

예를 들어,

FROM Customers AS Cust
INNER JOIN Orders AS Ord
INNER JOIN Products AS Prod

처럼 작성하면 SQL을 처음 보는 사람도 어떤 테이블인지 쉽게 알 수 있습니다.

학습 단계에서는 C, O, P처럼 짧은 별칭을 사용해도 충분합니다. 하지만 실제 프로그램을 개발할 때는 여러 사람이 함께 SQL을 읽기 때문에 Cust, Ord, Prod처럼 의미를 알 수 있는 별칭을 사용하는 경우도 많습니다. 중요한 것은 일관성 있게 사용하는 것입니다.

Alias는 대소문자를 구분할까요?

결론부터 말하면, MySQL에서는 대부분의 경우 Alias의 대소문자를 구분하지 않습니다.

 

예를 들어 C와 c를 같은 Alias로 인식합니다.

SELECT C.CustomerName,
c.Country
FROM Customers AS C;
MySQL에서는 Alias의 대소문자를 대부분 구분하지 않지만, 사람이 읽기 쉬운 SQL을 위해 Alias를 선언한 형태와 사용하는 형태를 동일하게 유지하는 습관을 들이는 것이 좋습니다.
SELECT C.CustomerName
FROM Customers AS C;

많이 하는 실수

실수 ①

Alias를 만들고

원래 이름을 계속 사용한다.

FROM Customers AS C

라고 작성했다면

이후에는

C.CustomerName

을 사용해야 합니다.


실수 ②

Alias를

한 글자씩 아무렇게나 만든다.

예를 들어

Customers → A

Orders → B

Products → C

보다는

이름과 관련 있는 글자를 사용하는 것이 좋습니다.


실수 ③

Alias를

같은 SQL 안에서

두 번 사용한다.

Customers → C

Categories → C

처럼

같은 Alias는 사용할 수 없습니다.


한눈에 정리

기능
테이블 별칭 Customers AS C
컬럼 별칭 CustomerName AS 고객명

이번 장 핵심 정리

✅ Alias는 임시 별칭이다.

✅ SQL이 훨씬 읽기 쉬워진다.

✅ JOIN이 많을수록 Alias의 장점이 커진다.

✅ 컬럼 이름도 원하는 제목으로 바꿀 수 있다.


연습 문제

기본 문제

① Customers 테이블에 C라는 Alias를 지정하여 고객 이름과 국가를 조회하시오.

② Orders 테이블에 O라는 Alias를 지정하여 주문번호와 주문일을 조회하시오.


응용 문제

다음 SQL을 Alias를 사용하여 다시 작성하시오.

SELECT Customers.CustomerName,
       Orders.OrderDate
FROM Customers
INNER JOIN Orders
    ON Customers.CustomerID = Orders.CustomerID;

도전 문제

고객명, 주문일, 상품명을 조회하는 SQL을 작성하시오.

단,

  • Customers → C
  • Orders → O
  • OrderDetails → OD
  • Products → P

의 Alias를 사용하시오.


정답

기본 문제

SELECT C.CustomerName,
       C.Country
FROM Customers AS C;

응용 문제

SELECT C.CustomerName,
       O.OrderDate
FROM Customers AS C
INNER JOIN Orders AS O
    ON C.CustomerID = O.CustomerID;

도전 문제

SELECT C.CustomerName,
       O.OrderDate,
       P.ProductName
FROM Customers AS C
INNER JOIN Orders AS O
    ON C.CustomerID = O.CustomerID
INNER JOIN OrderDetails AS OD
    ON O.OrderID = OD.OrderID
INNER JOIN Products AS P
    ON OD.ProductID = P.ProductID;