> ## Documentation Index
> Fetch the complete documentation index at: https://villagesql.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# MySQL 열 별칭

> MySQL 결과에서 AS로 열 이름을 바꾸는 방법, 어떤 인용 방식을 쓸지, 계산된 열에 항상 별칭이 필요한 이유, 그리고 AS가 바꾸지 않는 것입니다.

> [card] [VillageSQL is a drop-in replacement for MySQL with extensions.](https://villagesql.com/docs/en/8.4/stable/install-server.md)
>
> All examples on this page work on VillageSQL. Install Now →

결과 집합은 열 제목을 select 목록에 쓴 것에서 가져옵니다. 평범한 열이라면 그 제목은 열 이름이고, 보통은 괜찮습니다. 계산이라면 그 제목은 입력한 표현식 그대로인데, 그것은 괜찮지 않습니다. 별칭은 그 제목을 여러분이 고른 이름으로 바꿉니다.

시작하기 전에 `mysql -u root -p sakila`로 클라이언트를 여세요.

## 별칭의 동작 방식

```sql theme={null}
SELECT COLUMN_OR_EXPRESSION AS ALIAS_NAME
FROM TABLE_NAME;
```

`COLUMN_OR_EXPRESSION`을 원하는 열이나 계산으로, `ALIAS_NAME`을 그것에 붙일 제목으로, `TABLE_NAME`을 테이블로 바꾸세요.

별칭은 결과에만 적용됩니다. 테이블에 관한 어떤 것도 바뀌지 않고, 다음 쿼리는 그것에 대해 아무것도 모릅니다.

## 예제

### 열 이름 바꾸기

```sql theme={null}
SELECT title AS film_title FROM film;
```

```text theme={null}
+-----------------------------+
| film_title                  |
+-----------------------------+
| ACADEMY DINOSAUR            |
| ACE GOLDFINGER              |
| ADAPTATION HOLES            |
| AFFAIR PREJUDICE            |
| AFRICAN EGG                 |
...
+-----------------------------+
1000 rows in set (0.00 sec)
```

제목이 `film_title`로 읽힙니다. 값은 그대로입니다.

### 계산에 이름 붙이기

여기가 별칭이 제 몫을 하는 곳입니다. 별칭이 없으면 제목은 산술식입니다.

```sql theme={null}
SELECT title, rental_rate * 1.1 AS price_with_tax FROM film;
```

```text theme={null}
+-----------------------------+----------------+
| title                       | price_with_tax |
+-----------------------------+----------------+
| ACADEMY DINOSAUR            |          1.089 |
| ACE GOLDFINGER              |          5.489 |
| ADAPTATION HOLES            |          3.289 |
| AFFAIR PREJUDICE            |          3.289 |
| AFRICAN EGG                 |          3.289 |
...
+-----------------------------+----------------+
1000 rows in set (0.00 sec)
```

애플리케이션 코드는 결과를 열 이름으로 읽으므로, 이름 없는 표현식은 그 코드가 산술식의 정확한 텍스트에 의존하게 만듭니다.

### 공백이 들어간 별칭

글자, 숫자, 밑줄로만 된 별칭은 인용 부호가 필요 없습니다. 그 밖의 것은 모두 필요한데, 공백이나 `order`, `select`처럼 MySQL이 자체 용도로 예약한 단어가 포함됩니다. 기본으로 택할 인용 방식은 백틱입니다.

```sql theme={null}
SELECT title AS `Film Title` FROM film;
```

```text theme={null}
+-----------------------------+
| Film Title                  |
+-----------------------------+
| ACADEMY DINOSAUR            |
| ACE GOLDFINGER              |
| ADAPTATION HOLES            |
...
+-----------------------------+
1000 rows in set (0.00 sec)
```

작은따옴표도 같은 제목을 만듭니다:

```sql theme={null}
SELECT title AS 'Film Title' FROM film;
```

```text theme={null}
+-----------------------------+
| Film Title                  |
+-----------------------------+
| ACADEMY DINOSAUR            |
| ACE GOLDFINGER              |
| ADAPTATION HOLES            |
...
+-----------------------------+
1000 rows in set (0.00 sec)
```

하지만 둘이 어디에서나 동등한 것은 아닙니다. 백틱은 이름을 표시하고 작은따옴표는 문자열을 표시하며, 별칭을 다시 참조하는 뒤쪽 절은 그 차이를 구분할 수 있습니다. 다음 레슨이 그것이 잘못되는 모습을 보여 줍니다. 백틱을 쓰면 이 문제는 아예 생기지 않습니다.

인용 부호를 완전히 빼면 서버는 공백에서 멈춥니다:

```sql theme={null}
SELECT title AS Film Title FROM film;
```

```text theme={null}
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Title FROM film' at line 1
```

`ERROR 1064`는 일반적인 구문 오류입니다. 메시지 끝에 인용된 조각은 서버가 포기한 지점이며, 보통 실제 실수보다 한두 단어 뒤입니다.

## AS는 선택 사항이고, 빼면 오타가 숨습니다

열 뒤에 홀로 선 이름은 `AS`와 같은 뜻입니다. 빠뜨린 쉼표가 스스로를 숨기는 방식도 바로 이것입니다.

```sql theme={null}
SELECT title release_year FROM film;
```

```text theme={null}
+-----------------------------+
| release_year                |
+-----------------------------+
| ACADEMY DINOSAUR            |
| ACE GOLDFINGER              |
| ADAPTATION HOLES            |
...
+-----------------------------+
1000 rows in set (0.00 sec)
```

이것은 2개의 열을 의도한 것이었습니다. 빠진 쉼표가 `release_year`를 `title`의 별칭으로 바꾸었으므로, 결과는 `release_year`라는 제목 아래 영화 제목을 담은 1개의 열입니다. 문장이 유효하므로 서버는 아무 오류도 내지 않았습니다.

모든 별칭에 `AS`를 쓴다고 해서 서버가 이것을 거부하지는 않는데, 여기의 두 열 어느 쪽에도 별칭이 없기 때문입니다. 하지만 쿼리를 다시 읽을 때 실수가 눈에 띄게는 됩니다: 열 뒤에 `AS` 없이 홀로 선 이름은 빠진 쉼표입니다.

## 요약

* 결과 열에 자신이 고른 이름을 주려면 `AS`를 사용하세요.
* 계산된 열의 기본 제목은 표현식이므로, 항상 별칭을 붙이세요.
* 별칭에 공백이나 예약어가 들어 있으면 백틱으로 인용하세요.
* 모든 별칭에 `AS`를 써서, 홀로 선 이름이 빠진 쉼표로 읽히게 하세요.

## 함께 보기

* [SELECT](https://villagesql.com/docs/ko/tutorial/select.md) — 별칭이 붙는 문장
* [ORDER BY](https://villagesql.com/docs/ko/tutorial/order-by.md) — 결과 정렬, 인용 방식이 중요해지기 시작하는 곳
* [MySQL 문자열 함수](https://villagesql.com/docs/ko/guides/string-functions.md) — 이름이 필요한 표현식


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.