👀 실무에서는 MySql DBMS를 많이 사용하며,
백엔드 개발자는 성능 최적화 / 테이블 설계 두가지를 많이 합니다.
SELECT : 원하는 정보를 추출하기위해 사용
WHERE : 조건에 맞는 결과만 갖도록 데이터를 필터 조건을 작성
AS : 별칭을 주어 접근하는데 사용
LIMIT : 결과에서 몇개의 행을 보여줄 지 선택
AND는 자바에서 && 와 같은 연산자
OR는 자바에서 || 와 같은 연산자
IN 은 특별하게 IN("", "") 로 작성할수있습니다.
선택한 컬럼을 그룹핑한다.
쉽게말해 국가가 있으면 미국, 한국, 일본으로 그룹을 짓는것입니다.
HAVING 이란 GROUP BY을 하여 그룹을 지은후, 각 그룹에 필터 조건을 작성하는 것입니다.
2개이상의 테이블끼리 관계를 맺는다는 것입니다.
예시
select a.name, b.product
from user AS a JOIN product AS b ON a.id = b.id
- from + (JOIN)
- where
- group by
- havging
- select
- order by
- limit
1
select count(id)
from users;
➡ 2 where 조건으로 1차 필터링
select count(id)
from users
where age <= 20;
➡ 3 국가별 (group by 추가)
select county, count(id)
from users
where age <= 20
group by country;
➡ 4 국가별 유저수 500명 추가 (as 별칭 사용)
select country, count(id) as user_count
from users
where age <= 20
group by country
having user_count <= 500;
➡ 5 국가 TOP 5를 조회
select country,
count(id) as user_count
from users
where age <= 20
group by country
having user_count >= 500
order by user_count desc
limit 5