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