(SQL) Concat, ALIAS, DISTINCT, LIMIT

임경민·2023년 11월 6일
1
post-thumbnail
post-custom-banner

실습환경 만들기


  • celeb Table, snl_show Table 사용

Concat


  • 여러 문자열을 하나로 합치거나 연결해주는 함수
SELECT CONCAT('string1', 'string2', ...);
  • Ex 1)
SELECT CONCAT('concat', ' ', 'test');
  • Ex 2)
SELECT CONCAT('이름:', name) FROM celeb;

ALIAS


  • 칼럼이나 테이블 이름에 별칭 생성
SELECT column as alias
FROM tablename;

Table 별칭 생성


SELECT column1, column2, ...
FROM tablename as alias;
  • Ex) name을 이름으로 별칭을 만들어서 검색
SELECT name as '이름' FROM celeb;

  • Ex) name과 job_title을 합쳐서 profile이라는 별칭을 만들어서 검색
SELECT CONCAT(name, ' : ', job_title) as PROFILE FROM celeb;

  • Ex) snl_korea에 출연한 celeb을 기준으로 두 테이블을 조인하여 다음과 같이 각 데이터의 별칭을 사용하여 검색
    • 시즌, 에피소드, 방송일을 합쳐서 ‘방송정보’
    • 이름, 직업을 합쳐서 ‘출연자정보’
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;

as는 생략도 가능

SELECT CONCAT(s.season, '-', s.episode, '(', s.broadcast_date, ')') as '방송정보',
CONCAT(c.name, '(', c.job_title, ')') as '출연자정보'
FROM celeb c, snl_show s
WHERE c.name = s.host;

DISTINCT


  • 검색한 결과의 중복 제거
SELECT DISTINCT column1, column2, ...
FROM tablename;
  • Ex) 연예인 소속사 종류를 검색 - 중복 포함
SELECT agency FROM celeb;

  • Ex) 연예인 소속사 종류를 검색 - 중복 제거
SELECT DISTINCT agency FROM celeb;

  • Ex) celeb 테이블에서 성별과 소속사 별 종류를 검색하여 성별, 소속사 순으로 정렬
SELECT DISTINCT sex, agency FROM celeb
ORDER BY sex, agency DESC;

LIMIT


  • 검색결과를 정렬된 순으로 주어진 숫자만큼만 조회
SELECT column1, column2, ...
FROM tablename
WHERE condition
LIMIT number;
  • Ex) celeb 데이터 3개만 가져오기
SELECT * FROM celeb LIMIT 3;

  • Ex) 나이가 가장 적은 연예인 4명을 검색
SELECT * FROM celeb
ORDER BY age ASC
LIMIT 4;

  • Ex) SNL에 출연한 연예인 정보를 나이 역순 및 최신 방송날짜 순으로 2개만 검색하여 출력
SELECT CONCAT('SNL 시즌', s.season, ' 에피소드 ', s.episode, ' 호스트 ', s.host) as 'SNL 방송정보', c.age
FROM celeb as c, snl_show as s
WHERE c.name = s.host
ORDER BY c.age DESC, s.broadcast_date DESC 
LIMIT 2;

post-custom-banner

0개의 댓글