Where 절 문법
1. 같지 않음 !=
2. 범위 between
SELECT * FROM orders
WHERE created_at BETWEEN '2020-07-13' and '2020-07-15'
--13일과 14일 데이터만 가져오기
3. 포함
SELECT * FROM checkins
WHERE week in (1,3)
--괄호안에 숫자와 일치하는 데이터만 보고 싶다
4. 패턴
SELECT * FROM users
WHERE email like '%daum.net'
--대부분 like와 %를 함께 씀. %는 앞에 무엇이든 간에 daum.net으로 끝나는 것
SELECT * FROM users
WHERE email like 's%com'and name = '이**'
--s로 시작해서 com으로 끝나며 성이 이씨인 유저만
이외의 문법
1. 일부 데이터 가져오기 (limit)
ex) 큰 테이블의 데이터를 조회할 때
SELECT * FROM users
WHERE email like '%daum.net'
limit 5
2. 중복 제거하기 (distinct)
SELECT distinct(payment_method) FROM orders
3. 갯수 세기 (count)
SELECT count(*) FROM orders
WHERE payment_method = 'kakaopay'
--name의 중복을 제거한 갯수 세기
SELECT COUNT(DISTINCT(name)) from users
Quiz
1. 성이 남씨인 유저의 이메일만 추출하기
SELECT email FROM users
WHERE name = '남**'
2. Gmail을 사용하는 2020/07/12 ~13에 가입한 유저 추출하기
SELECT * FROM users
WHERE email like '%gmail.com' and created_at BETWEEN '2020-07-12' and '2020-07-14'
3. Gmail을 사용하는 2020/07/12 ~13에 가입한 유저 수 세기
SELECT COUNT(*) FROM users
WHERE email like '%gmail.com' and created_at BETWEEN '2020-07-12' and '2020-07-14'
4. naver 이메일을 사용하며 웹개발 종합반이고 결제는 kakaopay인 데이터 추출
SELECT * FROM orders
WHERE email like '%naver%'
and course_title = '웹개발 종합반'
and payment_method = 'kakaopay'
범주의 통계
where 절을 여러개 작성하는 것이 비효율적
성씨별 회원수를 Group by로 구해보기
SELECT name, COUNT(*) from users
group by name
-- users를 group by name으로 묶기, group by와 함께 count를 쓰면 name으로 묶이는 필드의 개수를 셈
팁!
문자열은 ' '로 열거하지만 숫자는 사용하지 않음
'SQL' 카테고리의 다른 글
Case when문 (0) | 2023.02.27 |
---|---|
서브쿼리(Subquery)와 with절 (0) | 2023.02.24 |
Join과 Union (0) | 2023.02.23 |
Group by, Order by, Alias 3일차 (0) | 2023.02.22 |
조건문 Where 기초 (1일차) (0) | 2023.02.20 |