CONCAT, ALIAS, DISTINCT, LIMIT

JERRY·2025년 3월 4일

SQL

목록 보기
10/18
post-thumbnail

1. 실습환경 만들기

  • 실습할 데이터베이스로 이동 : zerobase 사용(이동)
USE zerobase;

  • 실습할 데이터 확인
    • celeb
    • snl_show
SELECT *
FROM celeb;

SELECT *
FROM snl_show;


2. CONCAT

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

  • CONCAT 문법

SELECT CONCAT('string1', 'string2', ...);
  • CONCAT 예제 1
SELECT CONCAT('concat', ' ', 'test');

  • CONCAT 예제 2
SELECT CONCAT('이름 :', name)
FROM celeb;


3. ALIAS

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

  • ALIAS 문법 (Column)

SELECT column AS alias
FROM tablename;
  • ALIAS 문법 (Table)
SELECT column1, column2, ...
FROM tablename AS alias;
  • ALIAS 예제 1 : name을 이름으로 별칭을 만들어서 검색
SELECT name AS '이름'
FROM celeb;

  • ALIAS 예제 2 : name은 이름으로, agency는 소속사로 별칭을 만들어서 검색
SELECT name AS '이름', agency AS '소속사'
FROM celeb;

  • ALIAS 예제 3 : name과 job_title을 합쳐서 profile 이라는 별칭을 만들어서 검색
SELECT CONCAT(name, ' : ', iob_title) AS profile
FROM celeb;

  • ALIAS 예제 4 : snl_show에 출연한 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;

  • ALIAS 예제 5 : snl_korea에 출연한 celeb을 기준으로 두 테이블을 조인하여 다음과 같이 각 데이터의 별칭을 사용하여 검색 (as 생략)
    • 시즌, 에피소드, 방송일을 합쳐서 ‘방송정보’
    • 이름, 직업을 합쳐서 ‘출연자정보’
SELECT CONCAT(s.season, '-', s.episode, '(', s.broadcast_date, ')') '방송정보',
CONCAT(c.name, '(', c.job_title, ')') '출현자정보'
FROM celeb c, snl_host s
WHERE c.name = s.host;


4. DISTINCT

  • 검색한 결과의 중복 제거

  • DISTINCT 문법

SELECT DISTINCT column1, column2, ...
FROM tablename;
  • DISTINCT 예제 1-1 : 연예인 소속사 종류를 검색 - 중복 포함
SELECT agency FROM celeb;

  • DISTINCT 예제 1-2 : 연예인 소속사 종류를 검색 - 중복 제외
SELECT DISTINCT agency FROM celeb;

  • DISTINCT 예제 2-1 : 가수 중에서, 성별과 직업별 종류를 검색 - 중복 포함
SELECT sex, job_title 
FROM celeb
WHERE job_title LIKE '%가수%';

  • DISTINCT 예제 2-2 : 가수 중에서, 성별과 직업별 종류를 검색 - 중복 제외
SELECT DISTINCT sex, job_title 
FROM celeb
WHERE job_title LIKE '%가수%';


5. LIMIT

  • 검색결과를 정렬된 순으로 주어진 숫자만큼만 조회

  • LIMIT 문법

SELECT column1, column2, ...
FROM tablename
WHERE condition
LIMIT number;
  • LIMIT 예제 1 : celeb 데이터 3개만 가져오기
SELECT * FROM celeb LIMIT 3;

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

0개의 댓글