[SQL]: ALIAS

김대현·2024년 6월 9일

(1) ALIAS
(2) ALIAS 문법

(1) ALIAS

  • ALIASSQL AS 키워드를 사용하여 컬럼 또는 테이블에 별칭(Alias)을 지정하는 것을 말한다. 이러한 별칭은 쿼리 결과에서 컬럼이나 테이블의 이름을 더 읽기 쉽게 만들거나, 동일한 테이블이나 컬럼을 다른 이름으로 참조할 때 유용하게 사용된다.

  • 테이블에 별칭을 지정하면 쿼리를 더 간결하고 읽기 쉽게 만들 수 있고 특히 복잡한 JOIN이나 하위 쿼리에서 매우 유용하다. 별칭을 통해 쿼리에서 테이블을 참조하는 방식을 간소화하고, 협업을 할 때나 쿼리를 작성할 때 쿼리 가독성을 높일 수 있다.


(2) ALIAS 문법

🖍️ ALIAS (칼럼이나 테이블 이름에 별칭 생성)

#ALIAS (컬럼 이름에 별칭 생성)
mysql> SELECT column AS alias
       FROM tablename;
  • SELECT column AS alias: column을 조회하여 결과에 alias라는 별칭 또는 이름을 부여하는 것이다.

  • FROM tablename: tablename 테이블에서 데이터를 가져온다는 의미이다.

#ALIAS (테이블 이름에 별칭 생성)
mysql> SELECT column1, column1, ...
       FROM tablename as alias;
  • SELECT column1, column2, ...': column을 조회하여 테이블에서 선택할 열을 지정한다.

  • FROM tablename AS alias: tablename 테이블에에 alias라는 이름 또는 별칭을 지정한 것이다.



🖍️ ALIAS 실습 예제(칼럼에 별칭 생성)

#실습데이터 테이블 : celeb
+----+--------+------------+-----+-----+---------------+-------------------+
| ID | NAME  | BIRTHDAY   | AGE | SEX | JOB_TITLE    | AGENCY            |
+----+--------+------------+-----+-----+---------------+-------------------+
|  1 | 아이유 | 1993-05-16 |  29 | F   | 가수, 탤런트   | EDAM엔터테인먼트    |
|  2 | 이미주 | 1994-09-23 |  28 | F   | 가수          | 울림엔터테인먼트     |
|  3 | 송강   | 1994-04-23 |  28 | M   | 탤런트        | 나무엑터스          |
|  4 | 강동원 | 1981-01-18 |  41 | M   | 영화배우, 탤런트| YG엔터테인먼트      |
|  5 | 유재석 | 1972-08-14 |  50 | M   | MC, 개그맨    | 안테나              |
|  6 | 차승원 | 1970-06-07 |  48 | M   | 영화배우, 모델 | YG엔터테인먼트       |
|  7 | 이수현 | 1999-05-04 |  23 | F   | 가수          | YG엔터테인먼트       |
+----+--------+------------+-----+-----+---------------+-------------------+
7 rows in set (0.00 sec)

#ALIAS (컬럼 이름에 별칭 생성), name 을 이름으로 별칭을 만들어서 검색
mysql> SELECT name as '이름' FROM celeb;

+--------------+
| 이름:         |
+--------------+
| 아이유        |
| 이미주        |
| 송강          | 
| 강동원        |
| 유재석        |
| 차승원        |
| 이수현        |
+--------------+
7 rows in set (0.00 sec)
  • SELECT name as '이름': name 열을 조회하여 결과에 이름이라는 별칭 또는 이름을 부여하는 한다.



🖍️ ALIAS 실습 예제(테이블에 별칭 생성)

#실습데이터 테이블 : celeb
+----+--------+------------+-----+-----+---------------+-------------------+
| ID | NAME  | BIRTHDAY   | AGE | SEX | JOB_TITLE    | AGENCY            |
+----+--------+------------+-----+-----+---------------+-------------------+
|  1 | 아이유 | 1993-05-16 |  29 | F   | 가수, 탤런트   | EDAM엔터테인먼트    |
|  2 | 이미주 | 1994-09-23 |  28 | F   | 가수          | 울림엔터테인먼트     |
|  3 | 송강   | 1994-04-23 |  28 | M   | 탤런트        | 나무엑터스          |
|  4 | 강동원 | 1981-01-18 |  41 | M   | 영화배우, 탤런트| YG엔터테인먼트      |
|  5 | 유재석 | 1972-08-14 |  50 | M   | MC, 개그맨    | 안테나              |
|  6 | 차승원 | 1970-06-07 |  48 | M   | 영화배우, 모델 | YG엔터테인먼트       |
|  7 | 이수현 | 1999-05-04 |  23 | F   | 가수          | YG엔터테인먼트       |
+----+--------+------------+-----+-----+---------------+-------------------+
7 rows in set (0.00 sec)
#실습데이터2 : snl_show
+----+--------+---------+----------------+---------+
| ID | SEASON | EPISODE | BROADCAST_DATE | HOST    |
+----+--------+---------+----------------+---------+
|  1 |     8  |       7 | 2020-09-05     | 강동원   |
|  2 |     8  |       8 | 2020-09-12     | 유재석   |
|  3 |     8  |       9 | 2020-09-19     | 차승원   |
|  4 |     8  |      10 | 2020-09-26     | 이수현   |
|  5 |     9  |       1 | 2021-09-04     | 이병헌   |
|  6 |     9  |       2 | 2021-09-11     | 하지원   |
|  7 |     9  |       3 | 2021-09-18     | 제시     |
|  8 |     9  |       4 | 2021-09-25     | 조정석   |
|  9 |     9  |       5 | 2021-10-02     | 조여정   |
| 10 |     9  |       6 | 2021-10-09     | 옥주현   |
+----+--------+---------+----------------+---------+
10 rows in set (0.00 sec)

#ALIAS (테이블 이름에 별칭 생성), 
#snl_korea 에 출연한 celeb 을 기준으로 두 테이블을 조인하여,celeb 테이블은 c, 
#snl_show 테이블은 s 라는 별칭을 만들어서 출연한 시즌과 에피소드,이름,직업을 검색

mysql> SELECT s.season, s.episode, c.name, c.job_title
    -> FROM celeb AS c, snl_show AS s
    -> WHERE c.name = s.host;

+--------+---------+--------+---------------------+
| SEASON | EPISODE | NAME   | JOB_TITLE           |
+--------+---------+--------+---------------------+
| 8      |     7   | 강동원 | 영화배우, 탤런트       |
| 8      |     8   | 유재석 | MC, 개그맨            |
| 8      |     9   | 차승원 | 영화배우, 모델         |
| 8      |    10   | 이수현 | 가수                 |
+--------+---------+--------+---------------------+
4 rows in set (0.00 sec)

1. SELECT s.season, s.episode, c.name, c.job_title:

  • s.season, s.episode: snl_show 테이블의 seasonepisode 컬럼을 지정하여 조회하려는 것이다.

  • c.name, c.job_title: celeb 테이블의 namejob_title 컬럼을 지정하여 조회하려는 것이다.


2. FROM celeb AS c, snl_show AS s

  • FROM celeb AS c, snl_show AS s는 두 테이블 celebsnl_showAS를 사용해 ALLISAS 하여 각각 cs라는 별칭을 지정하여 테이블을 참조한다는 것을 말한다.

  • 이 구문은 암묵적으로 FROM 을 사용해 self join을 사용하여 두 테이블을 결합하고 있다.


3. WHERE c.name = s.host;

  • WHERE은 특정 조건을 지정하여 필터링하는 명령어이다.
  • c.name = s.host은 아까 ALIAScs라는 별칭을 가진 celeb 테이블의 name 컬럼과 snl_show 테이블의 host 컬럼의 값을 조회해서 서로 일치하는 행만 선택해 필터링하여 출력하는 조건이라는 의미이다.

4. 요약:

  • 두 테이블 celebsnl_showcs라는 별칭으로 ALIAS 해서 SELF JOIN

  • celeb 테이블의 name 컬럼과 snl_show 테이블의 host 컬럼의 값을 조회해서 서로 일치하는 행만 선택해 각 시즌과 에피소드,이름,직업을 검색하여 가져오는 쿼리이다.

profile
데이터 분석 스쿨 블로그 입니다.

0개의 댓글