(1) ALIAS
(2) ALIAS 문법
ALIAS은SQL AS 키워드를 사용하여 컬럼 또는 테이블에 별칭(Alias)을 지정하는 것을 말한다. 이러한 별칭은 쿼리 결과에서 컬럼이나 테이블의 이름을 더 읽기 쉽게 만들거나, 동일한 테이블이나 컬럼을 다른 이름으로 참조할 때 유용하게 사용된다.
테이블에 별칭을 지정하면 쿼리를 더 간결하고 읽기 쉽게 만들 수 있고 특히 복잡한 JOIN이나 하위 쿼리에서 매우 유용하다. 별칭을 통해 쿼리에서 테이블을 참조하는 방식을 간소화하고, 협업을 할 때나 쿼리를 작성할 때 쿼리 가독성을 높일 수 있다.
🖍️ 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 테이블의 season 과 episode 컬럼을 지정하여 조회하려는 것이다.
c.name, c.job_title: celeb 테이블의 name과 job_title 컬럼을 지정하여 조회하려는 것이다.
2. FROM celeb AS c, snl_show AS s
FROM celeb AS c, snl_show AS s는 두 테이블 celeb과 snl_show를 AS를 사용해 ALLISAS 하여 각각 c와 s라는 별칭을 지정하여 테이블을 참조한다는 것을 말한다.
이 구문은 암묵적으로 FROM 을 사용해 self join을 사용하여 두 테이블을 결합하고 있다.
3. WHERE c.name = s.host;
WHERE은 특정 조건을 지정하여 필터링하는 명령어이다. c.name = s.host은 아까 ALIAS 한 c와 s라는 별칭을 가진 celeb 테이블의 name 컬럼과 snl_show 테이블의 host 컬럼의 값을 조회해서 서로 일치하는 행만 선택해 필터링하여 출력하는 조건이라는 의미이다. 4. 요약:
두 테이블 celeb과 snl_show를 c와 s라는 별칭으로 ALIAS 해서 SELF JOIN
celeb 테이블의 name 컬럼과 snl_show 테이블의 host 컬럼의 값을 조회해서 서로 일치하는 행만 선택해 각 시즌과 에피소드,이름,직업을 검색하여 가져오는 쿼리이다.