[제로베이스]SQL_09. Concat

새봄·2024년 1월 22일
post-thumbnail

1. Concat

1) Concat

  • 여러 문자열을 하나로 합치거나 연결
SELECT CONCAT('string1', 'string2',...);

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

2. ALIAS

1) ALIAS

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

2) ALIAS 문법

(1) 칼럼의 별칭 생성

SELECT column AS alias
FROM tablename;

(2) 테이블 별칭 생성

SELECT column1, column2, ...
FROM tablename as alias;

3) 예제

(1) 예제1. name을 이름으로 별칭을 만들어서 검색

SELECT name as '이름'
FROM celeb;

(2) 예제2. name은 이름으로, agency는 소속사로 별칭을 만들어서 검색

SELECT name as '이름', agency as '소속사' FROM celeb;

(3) 예제3. name과 job_title을 합쳐서 profile 이라는 별칭을 만들어서 검색

SELECT CONCAT(name, ' : ', job_title) as profile From celeb;

(4) 예제4. snl_show 에 출연한 celeb을 기준으로 두 테이블을 조인하여, celeb 테이블은 c, snl_show 테이블은 s 라는 별칭을 만들어서 출연한 시즌과 에피소드, 이름, 직업을 검색

SELECT s.season, s.episode, c.name, c.job_table
JOIN c
FROM celeb as c, snl_show as s
WHERE c.name = s.host;

(5) 예제5. snl_show 에 출연한 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;

3. DISTINCT

1) DISTINCT

  • 검색한 결과의 중복 제거

2) Distinct 문법

SELECT DISTINCT column1, column2, ...
FROM tablename;
  • DISTINCT 뒤에 오는 칼럼의 중복을 제거해준다.

3) 예제

(1) 예제1. 연예인 소속사 종류를 검색-중복 포함

SELECT agency
FROM celeb;

(2) 예제1_2. 연예인 소속사 종류를 검색-중복 제외(DISTINCT)

SELECT DISTINCT agency
FROM celeb;

(3) 예제2. 가수 중에서 성별과 직업별 종류를 검색 - 중복 포함

SELECT sex, job_title
FROM celeb
WHERE job_title like '%가수%';

(3) 예제2_2. 가수 중에서 성별과 직업별 종류를 검색 - 중복 제거

SELECT DISTINCT sex, job_title
FROM celeb
WHERE job_title like '%가수%';

4. LIMIT

1) LIMIT

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

2) LIMIT 문법

SELECT column1, column2, ...
FROM tablename
WHERE condition
LIMIT number;

3) 예제

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

SELECT * FROM celeb LIMIT 3;

(2) 예제2. 나이가 가장 적은 연예인 4명 검색

SELECT * FROM celeb
ORDER BY age LIMIT 4;

0개의 댓글