본문 바로가기
죽을때까지 공부/sql

sql 문법정리

by 아둘람 2023. 4. 8.

 where- 데이터에 조건을 걸어준다

select * from orders where payment_method = "kakaopay";

order 테이블에서 payment_methpd가 카카오페이인 것만 가져와라.

 

'같지 않음' 조건은 != 로 걸 수 있습니다.

select * from orders where course_title != "웹개발 종합반";

 

범위' 조건은 between

select * from orders where created_at between "2020-07-13" and "2020-07-15";

 

포함' 조건은 in 으로 걸 수 있어요.

select * from checkins where week in (1, 3);

 

패턴' 조건은 like

select * from users where email like '%daum.net';

 

일부 데이터만 가져오는 Limit

select * from orders where payment_method = "kakaopay" limit 5;

 

중복 데이터는 제외하고 가져오기: Distinct

select distinct(payment_method) from orders;

 

몇 개인지 숫자 세보기: Count

select count(*) from orders

 

범주의 통계를 내주는 Group by

select name, count(*) from users

group by name;

 

Order by로 앞의 결과를 정렬해보자

select name, count(*) from users group by name order by count(*) desc;

 

Join이란? 두 테이블의 공통된 정보 (key값)를 기준으로 테이블을 연결해서 한 테이블처럼 보는 것을 의미해요.

select * from checkins c inner join users u on c.user_id = u.user_id;

 

Subquery란? 쿼리 안의 쿼리라는 의미입니다.

 

Where은 조건문이죠? Subquery의 결과를 조건에 활용하는 방식으로 유용하게 사용합니다.

select * from users u where u.user_id in (select o.user_id from orders o where o.payment_method = 'kakaopay');

 

Select는 결과를 출력해주는 부분이죠? 기존 테이블에 함께 보고싶은 통계 데이터를 손쉽게 붙이는 것에 사용합니다.

select c.checkin_id, c.user_id, c.likes, (select avg(likes) from checkins c2 where c2.user_id = c.user_id) as avg_like_user from checkins c;

 

From은 언제 사용하면 좋을까요? 내가 만든 Select와 이미 있는 테이블을 Join하고 싶을 때 사용하면 딱이겠죠!

select pu.user_id, a.avg_like, pu.point from point_users pu
inner join (
select user_id, round(avg(likes),1) as avg_like from checkins
group by user_id
) a on pu.user_id = a.user_id

'죽을때까지 공부 > sql' 카테고리의 다른 글

SQL 개발일지 -1  (0) 2023.03.29

댓글