SQL - (Basic) CONCAT, ALIAS, DISTINCT, LIMIT

jaam._.mini·2023년 12월 25일
0
post-thumbnail

CONCAT

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


💡 기본 문법

SELECT CONCAT('string1', 'string2', ...);

📌 활용

SELECT CONCAT('이름:' name) FROM celeb;

celeb으로 부터 가져온 name을 [이름:name]형식으로 출력



ALIAS

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


💡 기본 문법

  • 칼럼 별칭
    SELECT column as 사용할 별칭
    FROM tablename;
  • table 별칭
    SELECT column1, column2, ...
    FROM tablename as 사용할 별칭;

📌 활용

  • 예제 1.

    • name을 '이름', agency를 '소속사' 별칭
      SELECT name as '이름', agency as '소속사' FROM celeb;
  • 예제 2.

    • name + job_title = profile 별칭
      SELECT CONCAT(name, ':', job_title) as profile FROM celeb;
  • 예제 3.

    • snl_korea 에 출연한 celeb을 기준으로
      두 테이블을 JOIN해
      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;
  • 예제 4.

    • 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;

  • 예제 5.
    • 예제 4번에 AS 생략
       SELECT CONCAT
        -> (
        ->  s.season, '-' , s.episode, '(' , s.broadcast_date, ')'
        -> ) '방송정보',
        -> CONCAT
        -> (
        ->  c.name, '(' , c.job_title, ')'
        -> ) '출연정보'
        -> FROM celeb c, snl_show s
        -> WHERE c.name = s.host;
  • 예제 6.

    • 그림과 같이 출력해보기
    • me
      SELECT CONCAT
      ('이름:', c.name, '소속사:', c.agency)
      AS '연예인정보'     
      FROM celeb
      ▼ ❗정답❗
      SELECT CONCAT
      ('이름:', c.name, ',', '소속사:', c.agency)
      AS '연예인정보'     
      FROM celeb
      WHERE name LIKE '___';
  • 예제 7.

    • 그림과 같이 출력해보기

    • me

      SELECT
      CONCAT agency AS '소속사정보'
      CONCAT ('나이:', c.age, '(', c.sex, ')')AS '신상정보'
      CONCAT (s.season, '-' , s.episode, '(' , s.broadcast_date, ')') AS '출연정보'
      FROM celeb, snl_show
      WHERE c.name = s.host
      

      ▼ ❗정답❗

      select c.agency '소속사정보', 
      concat('나이:', 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

검색한 결과의 중복 제거


💡 기본 문법

  • column 집합의 중복을 제거
SELECT DISTINCT column1, column2, ...
FROM tablename;

📌 활용
  • 예제 1.
    • 연예인 소속사 종류 검색
  • 예제 2.
    • 가수 중, 성별과 직업별 정류 검색



LIMIT

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


💡 기본 문법

SELECT column1, column2, ..
FROM tablename
WHERE condition # 이 결과 중에서 #WHERE 밑으로 들어감
LIMIT number; # 몇개를 가져올 지 개수 입력

📌순서를 짚어 봅시다⭐
(1) SELECT
(2) FROM
(3) WHERE
(4) LIMIT

  • 예제 1.
    • celeb 데이터 3개만 가져오기

      # 전체 가져오고
      SELECT * FROM celeb
      
      # 3개만 보여줘
      LIMIT 3;

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

제로베이스 데이터 스쿨
profile
비전공자의 데이터 공부법

0개의 댓글