본문 바로가기
mySql

[mysql] Union / Join / Concat / Alias / Distinct / Limit

by ram_ 2022. 12. 5.

01. UNION / UNION ALL

 

: 여러개의 SQL문을 합쳐서 하나의 SQL 문으로 만들어주는 방법 (주의:칼럼의 개수가 같아야 함)

UNION : 중복된 값을 제거하여 알려준다.

UNION ALL : 중복된 값도 모두 보여준다.

# 가수가 직업인 연예인의 이름, 직업을 검색하는 쿼리와
# 1980년대에 태어난 연예인의 이름, 생년월일, 나이를 검색하는 쿼리를 UNION으로 실행

SELECT name, job_title FROM celab where job_title LIKE '%가수%'
UNION
SELECT name, birthday, age FROM celab where birthday BETWEEN '1980-01-01' AND '1989-12-31';

========> ERROR 1222 (21000): The used SELECT statements have a different number of column
컬럼의 갯수가 달라서 뜨는 ERROR
# 성별이 여자인 데이터를 검색하는 쿼리와 소속사가 YG엔터테이먼트인 데이터를 UNION ALL로 합쳐라.

select * from celab where sex = 'F'
UNION ALL
select * from celab where agency='YG엔터테이먼트';
# 성이 이씨인 데이터를 검색하는 쿼리와 1970년대생을 검색하는 쿼리를 중복을 포함하여 합쳐라.
select * from celab where name LIKE '이%'
UNION ALL
select * from celab where birthday BETWEEN '1970-01-01' AND '1979-12-31';

 


02. JOIN

JOIN : 두개 이상의 테이블을 결합하는 것

# inner join 
select celab.id, celab.name, snl_show.id, snl_show.host
    from snl_show
    inner join celab
    on snl_show.host=celab.name;

 

 


03. CONCAT

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

select CONCAT('concat', ' ', 'test');
select concat('이름:', name) from celab;

 


04. ALIAS

ALIAS : 칼럼이나 테이블 이름에 별칭 생성 (약자 as)

select name as '이름'
from celab;

 

 

# 앞글자가 2글자이고 , '엔터테이먼트'로 끝나는 소속사 연애인 중 SNL에 출연한 연예인의 신상정보(나이, 성별)와

출연정보(시즌-에피소드, 방송날짜), 소속사 정보를 방송 날짜 최신순으로 정렬하여 다음과 같이 검색하세요.

alias -> as 사용하여 celab = c, snl_show = s 지정하였다.

order by desc를 사용하여 내림차순으로 설정하였다.

 

 


05. DISTINCT

DISTINCT : 검색한 결과의 중복된 내용을 제거한다.

select DISTINCT column1, column2 ...

 

 


06. LIMIT

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

select column1, column2
    from tablename
    where condition
    LIMIT number;

 

# celeb table에서 남자 연예인 중 나이가 가장 많은 2명을 조회하세요.

 

'mySql' 카테고리의 다른 글

[mysql] backup / restore  (0) 2022.12.07
AWS RDS  (0) 2022.12.07
[mysql] Logical Operators  (0) 2022.12.04
[mysql] ORDER BY / Comparison Operators  (0) 2022.12.04
[mysql] insert / select / where / update / delete  (0) 2022.12.04