SQL (6) : CONCAT, ALIAS, DISTINCT, LIMIT

Jio.B·2023년 7월 13일
0

CONCAT

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

[기본 문법]

[예제]

[문제 2]

ALIAS

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

[기본 문법]

  • 칼럼 이름의 별칭 생성
  • 테이블 이름의 별칭 생성
  • !! 참고 !! AS는 생략도 가능

[예제 1]

  • name과 job_title을 합쳐서 profile이라는 별칭을 만들어서 검색
    [예제 2]
  • snl_show에 출연한 celeb을 기준으로 두 테이블을 조인하여,
    celeb 테이블은 c, snl_show 테이블은 s라는 별칭을 만들어서 출연한 시즌과 에피소드, 이름, 직업을 검색
    [예제 3]
  • snl_show에 출연한 celeb을 기준으로 두 테이블을 조인하여 다음과 같이 각 데이터의 별칭을 사용하여 검색

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

[문제 2]

mysql >
select c.agency '소속사 정보', concat('이름: ', c.name, ' / ', '나이: ', c.age, '(', c.sex, ')') '신상정보',
-> concat(s.season, ' - ', s.episode, ' / ', '방송날짜: ', s.broadcast_date) '출연정보'
-> from celeb c, snl_show s
-> where c.name=s.host and agency like '__엔터테이먼트'
-> order by s.broadcast_date desc;


DISTINCT

  • 검색한 결과의 중복 제거

[기본 문법]

[예제 1] 연예인 소속사 종류를 검색 ( 중복 제외 )
[예제 2] 가수 중에서, 성별과 직업별 종류를 검색 ( 중복 제외 )

LIMIT

  • 검색결과를 정렬된 순으로 주어진 숫자만큼만 조회
    ex) 필터링한 결과 중 상위 3개만 출력

[기본 문법]

[예제 1] celeb 데이터 3개만 가져오기
[예제 2] 나이가 가장 적은 연예인 4명 검색

[문제 1] celeb 테이블에서 남자 연예인 중 나이가 가장 많은 2명 조회

[문제 2] SNL에 출연한 연예인의 정보를 나이가 많은 순으로 2개만 검색

mysql>
select concat('SNL 시즌 ', s.season, ' / ', '에피소드 ', s.episode, ' / ', '호스트 ', s.host) as 'SNL 방송정보', c.age
-> from snl_show s, celeb c
-> where s.host = c.name
-> order by c.age desc
-> limit 2;

0개의 댓글