Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL 별칭(Alias)은 SELECT *에 쓸 수 없다? 개별 컬럼에 별칭 지정하는 방법

MySQL에서 별칭(alias)은 SELECT * 구문과 함께 사용할 수 없습니다. 하지만 개별 컬럼에는 자유롭게 별칭을 지정할 수 있습니다. 기본 문법은 다음과 같습니다.

select anyaliasName.yourColumnName1 as anyaliasName1,
anyaliasName.yourColumnName2 as anyaliasName2,
anyaliasName.yourColumnName3 as anyaliasName3,
anyaliasName.yourColumnName4 as anyaliasName4,
.
.
.
N
from yourTableName as anyaliasName;

MySQL 별칭이란?

MySQL의 별칭(alias)은 테이블에 붙일 수 있는 임시 이름으로, 이를 통해 해당 테이블의 컬럼명에 손쉽게 접근할 수 있습니다. 주로 테이블 이름이 길거나 여러 테이블을 조인할 때 코드의 가독성을 높이기 위해 활용됩니다.

위 문법을 실제로 이해하기 위해 예제 테이블을 하나 만들어 보겠습니다.

1. 테이블 생성

테이블을 생성하는 쿼리는 다음과 같습니다.

mysql> create table TableAliasDemo
    -> (
    -> Id int,
    -> Name varchar(100),
    -> Age int
    -> );
Query OK, 0 rows affected (0.46 sec)

2. 데이터 삽입

insert 명령어를 사용해 몇 개의 레코드를 추가합니다.

mysql> insert into TableAliasDemo values(1,'John',23);
Query OK, 1 row affected (0.13 sec)

mysql> insert into TableAliasDemo values(2,'Sam',24);
Query OK, 1 row affected (0.23 sec)

mysql> insert into TableAliasDemo values(3,'David',26);
Query OK, 1 row affected (0.15 sec)

mysql> insert into TableAliasDemo values(4,'Carol',20);
Query OK, 1 row affected (0.19 sec)

3. 전체 레코드 조회

select 문으로 테이블의 모든 레코드를 확인합니다.

mysql> select *from TableAliasDemo;

실행 결과는 다음과 같습니다.

+------+-------+------+
| Id   | Name  | Age  |
+------+-------+------+
|    1 | John  |   23 |
|    2 | Sam   |   24 |
|    3 | David |   26 |
|    4 | Carol |   20 |
+------+-------+------+
4 rows in set (0.00 sec)

4. 테이블 및 컬럼에 별칭 적용하기

이제 테이블에 별칭을 지정하고, 각 컬럼에도 별도의 별칭을 부여해 보겠습니다. 쿼리는 다음과 같습니다.

mysql> select alias.Id as aliasForIdColumn,
    -> alias.Name as aliasForNameColumn,
    -> alias.Age as aliasForAgeColumn
    -> from TableAliasDemo as alias;

실행 결과는 아래와 같습니다. 원래 컬럼명(Id, Name, Age) 대신 지정한 별칭이 결과 집합의 헤더로 출력되는 것을 확인할 수 있습니다.

+------------------+--------------------+-------------------+
| aliasForIdColumn | aliasForNameColumn | aliasForAgeColumn |
+------------------+--------------------+-------------------+
|              1 | John               |               23 |
|                2 | Sam                |                24 |
|                3 | David              |                26 |
|                4 | Carol              |                20 |
+------------------+--------------------+-------------------+
4 rows in set (0.00 sec)

정리

핵심을 요약하면 다음과 같습니다.

  • SELECT * 와일드카드에는 별칭을 직접 지정할 수 없습니다.
  • 별칭은 테이블명 AS 별칭 형태로 테이블에 부여하고, 별칭.컬럼명 AS 새로운이름 형태로 각 컬럼에 적용합니다.
  • 별칭을 사용하면 결과 집합의 컬럼 제목을 원하는 이름으로 바꿀 수 있어 가독성이 크게 향상됩니다.
  • 특히 여러 테이블을 조인하거나 서브쿼리를 사용할 때 별칭은 필수적인 도구입니다.