SQL: CONCAT / ALIAS / DISTINCT / LIMIT

보라·2024년 1월 25일
0

Ch. 5 SQL

목록 보기
9/14

CONCAT

: 여러 문자열을 하나로 합치거나 연결
SELECT CONCAT ('string 1', 'string 2');

예제 1)
celeb 의 name 앞에 '이름: ' 넣어주기
mysql> select concat('이름:', name) FROM celeb;
+-----------------------+
| concat('이름:', name) |
+-----------------------+
| 이름:아이유 |
| 이름:이미주 |
| 이름:송강 |
| 이름:강동원 |
| 이름:유재석 |
| 이름:차승원 |
| 이름:이수현 |
+-----------------------+

ALIAS

: 칼럼이나 테이블 이름에 별칭 생성

🔊Column 문법: SELECT COLUMN AS alias FROM tablename;
🔊Table 문법: SELECT column 1, column2, ... FROM tablename as alias;

예제 1)
name 을 이름으로, agency 를 소속사로 별칭을 만들어서 검색
mysql> select name as '이름', agency as '소속사' from celeb;
+--------+-------------------+
| 이름 | 소속사 |
+--------+-------------------+
| 아이유 | EDAM 엔터테인먼트 |
| 이미주 | 울림엔터테이먼트 |
| 송강 | 나무엑터스 |
| 강동원 | YG |
| 유재석 | 안테나 |
| 차승원 | YG |
| 이수현 | YG |
+--------+-------------------+

예제 2)
name 과 job_title 을 합쳐서 profile 이라는 별칭을 만들어서 검색
✅ concat 과 alias 를 같이 사용✅
mysql> SELECT CONCAT(name, ' : ', job_title) as profile FROM celeb;
+---------------------------+
| profile |
+---------------------------+
| 아이유 : 가수, 탤런트 |
| 이미주 : 가수 |
| 송강 : 탤런트 |
| 강동원 : 영화배우, 탤런트 |
| 유재석 : MC, 개그맨 |
| 차승원 : 영화배우, 모델 |
| 이수현 : 가수 |
+---------------------------+

예제 3)
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)
snl_korea 에 출연한 celeb 을 기준으로 두 테이블을 조인하여 다음과 같이 각 데이터의
별칭을 사용하여 검색

  • 시즌, 에피소드, 방송일을 합쳐서 '방송정보'
  • 이름, 직업을 합쳐서 '출연자정보'
    mysql> select CONCAT(s.season, '-', s.episode, '(', s.broadcast_date, ')') as '방송정보',
    -> CONCAT(c.name, '(', c.job_title, ')') as '출연자정보'
    -> FROM celeb as c, snl_show as s
    -> where c.name = s.host;
    +------------------+--------------------------+
    | 방송정보 | 출연자정보 |
    +------------------+--------------------------+
    | 8-7(2020-09-05) | 강동원(영화배우, 탤런트) |
    | 8-8(2020-09-12) | 유재석(MC, 개그맨) |
    | 8-9(2020-09-19) | 차승원(영화배우, 모델) |
    | 8-10(2020-09-26) | 이수현(가수) |
    +------------------+--------------------------+

DISTINCT

: 검색한 결과의 중복 제거
SELECT DISTINCT column1, column2, ...
FROM tablename;

예제 1)
연예인 소속사 종류를 검색 - 중복 제외
mysql> select DISTINCT agency from celeb;
+-------------------+
| agency |
+-------------------+
| EDAM 엔터테인먼트 |
| 울림엔터테이먼트 |
| 나무엑터스 |
| YG |
| 안테나 |
+-------------------+

LIMIT

: 검색결과를 정렬된 순으로 주어진 숫자만큼만 조회
SELECT column 1, column2,...
FROM tablename
WHERE condition
LIMIT number

예제 1)
celeb 데이터 3개만 가져오기
mysql> select * from celeb limit 3;
+----+--------+------------+------+------+--------------+-------------------+
| 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 | 탤런트 | 나무엑터스 |
+----+--------+------------+------+------+--------------+-------------------+

예제 2)
나이가 가장 적은 연예인 4명을 검색
mysql> select * from celeb order by age limit 4;
+----+--------+------------+------+------+--------------+-------------------+
| ID | NAME | BIRTHDAY | AGE | SEX | JOB_TITLE | AGENCY |
+----+--------+------------+------+------+--------------+-------------------+
| 7 | 이수현 | 1999-05-04 | 23 | F | 가수 | YG |
| 2 | 이미주 | 1994-09-23 | 28 | F | 가수 | 울림엔터테이먼트 |
| 3 | 송강 | 1994-04-23 | 28 | M | 탤런트 | 나무엑터스 |
| 1 | 아이유 | 1993-05-16 | 29 | F | 가수, 탤런트 | EDAM 엔터테인먼트 |
+----+--------+------------+------+------+--------------+-------------------+

✨실습✨
이름인 3글자인 연예인 정보를 검색하여 다음과 같이 출력
mysql> select concat('이름: ', name, ' , ', '소속사: ', agency) as '연예인 정보' from celeb
-> where name like '___';
+------------------------------------------+
| 연예인 정보 |
+------------------------------------------+
| 이름: 아이유 , 소속사: EDAM 엔터테인먼트 |
| 이름: 이미주 , 소속사: 울림엔터테이먼트 |
| 이름: 강동원 , 소속사: YG |
| 이름: 유재석 , 소속사: 안테나 |
| 이름: 차승원 , 소속사: YG |
| 이름: 이수현 , 소속사: YG |
+------------------------------------------+

profile
데이터 분석 취준생

0개의 댓글