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

+ Recent posts