show tables : 테이블 보기
select * from orders : orders 테이블의 데이터 전부 가져오기
select 필드명, 필드명 form orders : orders 테이블의 특정 필드만 가져오기
Where절은 Select 쿼리문으로 가져올 데이터에 조건을 걸어주는 것.
ex) where 필드명 between '2020-07-13' and '2020-07-15'
a이거나 b인 것들 ↔ a도 아니고 b도 아닌것들 not in
ex) where 필드명 in (1,3)
ex) where 필드명 like '%daum.net'
: 보여지는 정보가 너무 많을 때 주로 사용하며 정보의 개수를 제한함. ex) limit 5
ex) select distinct(필드명) from 테이블명
ex) select count(*) from orders
ex) select count(distinct(name)) from users
동일한 범주를 갖는 데이터를 하나로 묶어서, 범주별 통계를 내주는 것
select 범주가 담긴 필드명, min(최솟값을 알고 싶은 필드명) from 테이블명
group by 범주가 담긴 필드명
select 범주가 담긴 필드명, max(최대값을 알고 싶은 필드명) from 테이블명
group by 범주가 담긴 필드명
select 범주가 담긴 필드명, avg(평균값을 알고 싶은 필드명) from 테이블명
group by 범주가 담긴 필드명;
select 범주가 담긴 필드명, sum(합계를 알고 싶은 필드명) from 테이블명
group by 범주가 담긴 필드명
반올림을 하고 싶을 때 round를 사용
ex) 소수점 2자리까지만 표현하고 반올림하고 싶으면 round(avg(likes),2)
select week, round(avg(likes),2) from checkins
group by week;
cf) 정수형으로 표현된 칼럼을 실수형으로 변경하는 방법
cast(칼럼 as float)
정렬을 할 때 사용. 내림차순으로 할 때 order by 필드명 desc
테이블명 옆에 별칭 또는 필드명 옆에 'as 별칭' 사용
왼쪽에 있는 테이블을 기준으로 다른 테이블을 붙이는 것
left join 테이블명 on 일치하는 필드명
ex) select * from users u
left join point_users pu on u.user_id = pu.user_id
교집합과 같은의미(비어있는 필드가 없이 두 테이블에서 모두 가지고 있는 데이터만 출력)
inner join 테이블명 on 일치하는 필드명
ex)
(
새로 만든 테이블
)
union all
(
새로 만든 테이블
)
쿼리문 안에 들어가는 쿼리문
where 필드명 in (subquery)
select 필드명, 필드명, (subquery) from ..
From은 내가 만든 Select와 이미 있는 테이블을 Join하고 싶을 때 사용하면 딱이다!(내가 만든 테이블을 원래 있는 테이블처럼 사용하는 것)
with절을 통해 from절에 들어간 Subquery를 더 깔끌하게 정리할 수 있다!
ex) with table1 as (서브쿼리), table2 as (서브쿼리), ...
이렇게 상단에 서브쿼리를 table1, 2, ... 로 만들고 실제 쿼리문을 작성할 때 서브쿼리를 직접 쓰는 대신 table1, 2, ... 을 사용함
SUBSTRING_INDEX(필드명, '기준', 1 or- 1)
ex) select user_id, email, SUBSTRING_INDEX(email, '@', 1) from users
SUBSTRING(문자열(필드명), 출력을 하고싶은 첫 글자의 위치, 몇개의 글자를 출력하고 싶은지)
ex) select order_no, created_at, substring(created_at,1,10) as date from orders
case when 조건
else 조건
END