SQL 기초 - CONCAT 등

Jungmin·2022년 11월 4일
1

SQL

목록 보기
7/17
post-custom-banner

⏹️ CONCAT

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

mysql> SELECT CONCAT('CONCAT',' ','TEST');
+-----------------------------+
| CONCAT('CONCAT',' ','TEST') |
+-----------------------------+
| CONCAT TEST                 |
+-----------------------------+
1 row in set (0.00 sec)
mysql> SELECT CONCAT('이름:', NAME) FROM CELEB;
+-----------------------+
| CONCAT('이름:', NAME) |
+-----------------------+
| 이름:아이유           |
| 이름:이미주           |
| 이름:송강             |
| 이름:강동원           |
| 이름:유재석           |
| 이름:차승원           |
| 이름:이수현           |
+-----------------------+
7 rows in set (0.00 sec)

⏹️ ALIAS

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

  • 컬럼에 별칭 생성
    SELECT COLUMN AS 별칭 FROM 테이블명;

  • 테이블에 별칭 생성
    SELECT COL1, COL2,.. FROM 테이블명 AS 별칭;

  • NAME을 이름으로, AGENCY는 소속사로 별칭 만들어서 검색

mysql> SELECT NAME AS '이름', AGENCY AS '소속사' FROM CELEB;
+--------+------------------+
| 이름   | 소속사           |
+--------+------------------+
| 아이유 | EDAM엔터테이먼트 |
| 이미주 | 울림엔터테이먼트 |
| 송강   | 나무엑터스       |
| 강동원 | YG엔터테이먼트   |
| 유재석 | 안테나           |
| 차승원 | YG엔터테이먼트   |
| 이수현 | YG엔터테이먼트   |
+--------+------------------+
  • NAME 과 JOB_TITLE 합쳐서 PROFILE이라는 별칭 만들어서 검색
mysql> SELECT CONCAT(NAME,' : ',JOB_TITLE)
    -> AS PROFILE FROM CELEB;
+--------------------------+
| PROFILE                  |
+--------------------------+
| 아이유 : 가수,탤런트     |
| 이미주 : 가수            |
| 송강 : 탤런트            |
| 강동원 : 영화배우,탤런트 |
| 유재석 : MC,개그맨       |
| 차승원 : 영화배우,모델   |
| 이수현 : 가수            |
+--------------------------+
  • SNL에 출연한 연예인 기준으로 두 테이블을 조인하여 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)
  • SNL에 출연한 연예인 기준으로 두 테이블을 조인하여 다음과 같이 각 별칭을 사용하여 검색.
    - (시즌, 에피소드, 방송일을 합쳐 방송정보 / 이름,직업을 합쳐 출연자정보)
      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 COL1, COL2,..FROM 테이블명;

  • 연예인 소속사 종류를 검색 (중복 포함)
mysql> SELECT AGENCY FROM CELEB;
+------------------+
| AGENCY           |
+------------------+
| EDAM엔터테이먼트 |
| 울림엔터테이먼트 |
| 나무엑터스       |
| YG엔터테이먼트   |
| 안테나           |
| YG엔터테이먼트   |
| YG엔터테이먼트   |
+------------------+
  • 연예인 소속사 종류를 검색 (중복 제외)
mysql> SELECT DISTINCT AGENCY FROM CELEB;
+------------------+
| AGENCY           |
+------------------+
| EDAM엔터테이먼트 |
| 울림엔터테이먼트 |
| 나무엑터스       |
| YG엔터테이먼트   |
| 안테나           |
+------------------+
  • 가수 중, 성별과 직업별 종류를 검색 (중복 포함)
mysql> SELECT SEX, JOB_TITLE FROM CELEB WHERE JOB_TITLE LIKE '%가수%';
+------+-------------+
| SEX  | JOB_TITLE   |
+------+-------------+
| F    | 가수,탤런트 |
| F    | 가수        |
| F    | 가수        |
+------+-------------+
  • 위의 동일 조건 집합에 대한 중복값 제거 후 검색 (중복 제거)
mysql> SELECT DISTINCT SEX, JOB_TITLE FROM CELEB WHERE JOB_TITLE LIKE '%가수%';
+------+-------------+
| SEX  | JOB_TITLE   |
+------+-------------+
| F    | 가수,탤런트 |
| F    | 가수        |
+------+-------------+

⏹️ LIMIT

: 검색 결과를 정렬된 순으로 주어진 숫자만큼 조회
SELECT COL1, COL2,... FROM 테이블명 WHERE 조건 LIMIT 숫자;

  • 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    | 탤런트      | 나무엑터스       |
+----+--------+------------+------+------+-------------+------------------+
  • 나이 어린 순으로 연예인 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엔터테이먼트 |
+----+--------+------------+------+------+-------------+------------------+
profile
데이터분석 스터디노트🧐✍️
post-custom-banner

0개의 댓글