SQL Concat, Alias, Distinct, Limit 20240908

Yoochang Sung·2024년 9월 9일

잊지 말기

concat

여러 문자열을 하나로 합치거나 연결

Select CONCAT('string1', 'string2',....);
ex1) Select concat('concat',' '. 'test'); -> concat test

ex2) Select CONCAT ('이름:', name) From celeb; -> 이름: 아이유

Alias

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

컬럼: Select column as(alias 약자) From table name
테이블: Select column1, column2, ... From 테이블 이름 as 별칭;

ex1) name을 이름으로 별칭을 만들어서 검색
Select name as '이름' From celeb; -> name 대신 이름이라고 뜸

ex2) Select name as '이름', agency as '소속사' From celeb;

-> name은 이름으로 agency는 소속사 이름으로 뜸

ex3) name과 직업을 합쳐서 profile 이라는 별칭을 만들어서 검색

Select Concat(name, ' : ', job_title) as profile From celeb;

ex4) snl에 출연한 celeb을 기준으로 두 테이블을 조인하여,

Celeb 테이블은 c, snl_show 테이블은 s라는 별칭을 만들어서 출연한 시즌과 에피소드, 이름, 직업을 검색

Select s.season, s.episode, c.name, c.job_title
From celeb AS c, snl_show AS s
where c.name = s.host;

ex5) SNL에 출연한 celeb 을 기준으로 두 테이블을 조인하여 각 데이터의 별칭을 사용하여 검색

  1. 시즌, 에피소드, 방송일을 합쳐서 '방송정보'
  2. 이름, 직업을 합쳐서 '출연자정보'

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;

Distinct

검색한 결과의 중복을 제거

Select DISTINCT column1, column2, ...
From 테이블 이름

ex1) Select DISTINCT From celeb; -> 여러개였던 YG 하나만 나옴.

ex2) 가수 중, 성별과 직업별 종류를 검색

Select sex, job_title From celeb Where job_title LIKE '%가수%';
이거는 중복 결과 나옴

Select DISTINCT sex, job_title From celeb Where job_title LIKE '%가수%'; -> 중복 삭제

Limit

검색결과를 정렬된 순으로 주어진 숫자만큼만 조회(100개가 검색되도 상위 몇 개만 조회 가능)

Select column1, column2,...
From 테이블 이름
Where 조건
Limit 숫자;

ex1) 셀럽 데이터 3개만 가져오기

Select * from celeb LIMIT 3; (위에 3명만)

ex2) 나이가 가장 적은 연예인 4명 검색

Select * From celeb Order by age LIMIT 4;

실습

이름이 3글자인 연예인 정보를 검색하여 다음과 같이 출력

앞글자가 2글자이고, 엔터테인먼트로 끝나는 소속사 연예인 중
SNL에 출연한 연예인의 신상정보 (나이, 성별)와 출연정보(시즌, 에피소드, 방송날짜), 소속사 정보를 방송날짜 최신순으로 정렬하여 정리하세요.

날짜 오래된 순

날짜 최신 순

profile
Yoochang Sung

0개의 댓글