7.where 절의 개념
ex) orders 테이블에서 결제수단이 카카오페이인 데이터만 가져와줘
[select * from orders where 필드 = 'kakaopay']
ex) point_users 테이블에서 포인트가 5000점 이상인 데이터만 가져와줘
[select * from point_users where point > 5000]
ex) orders 테이블에서 주문한 강의가 앱개발 종합반이면서, 결제수단이 카드인 데이터만 가져와줘
[select * from orders where 테이블 = '앱개발 종합반' and 테이블 'CARD']
꿀팁 >
1) show tables로 어떤 테이블이 있는지 살펴보기
2) 제일 원하는 정보가 있을 것 같은 테이블에 select from 테이블명 쿼리 날려보기
3) 원하는 정보가 없으면 다른 테이블에도 2)를 해보기
4) 테이블을 찾았다! 조건을 걸 필드를 찾기
5) select from 테이블명 where 조건 이렇게 쿼리 완성!
'같지 않음' 조건 "!="
ex) 웹개발 종합반을 제외하고 주문데이터를 보고 싶어
[select * from 테이블 where 필드 =! '웹개발 종합반']
*상식 '=!'에서 !(느낌표)는 부정(not)을 의미 '=' 같음을 의미
'범위' 조건 걸어보기 "between"
ex) 7월 13일, 7월 14일의 주문데이터만 보고 싶어
[select * from 테이블 where 필드 between '2022-07-13' and '2022-07-15'
'포함' 조건 걸어주기 "in"
ex) 1, 3주차 사람들의 '오늘의 다짐' 데이터만 보고 싶어
[select * from 테이블 where 필드 in (1,3)]
'패턴'(문자열 규칙) 조건 걸어보기 "like"
ex) 다음 이메일을 사용하는 유저만 보고 싶어
[select * from 테이블 where 필드 like '%daum.net']
꿀팁 > Like는 패턴으로 조건을 거는 문법으로, 사용법이 아주 다양
- where email like 'a%': email 필드값이 a로 시작하는 모든 데이터
- where email like '%a' email 필드값이 a로 끝나는 모든 데이터
- where email like '%co%' email 필드값에 co를 포함하는 모든 데이터
- where email like 'a%o' email 필드값이 a로 시작하고 o로 끝나는 모든 데이터
이외에도 여러 문법 - ('how to use like in sql' 구글링!)
일부 데이터만 가져오기 "Limit"
ex) 카카오 페이 결제한 데이터를 5개만 보고싶어
[select * frome 테이블 where 필드 = 'kakaopay' limit 5]
중복 데이터는 제외하고 가져오기 "Distinct"
ex) 어떤 결제 수단이 있는지 보고싶어
[select distinct(필드) from 테이블]
테이블에 데이터가 몇 개인지 숫자 세보기 "Count"
ex) orders 테이블에 데이터가 몇 개 들어있는지 궁금해요!
[select count(*) from orders]
*응용 해보기
distinct와 count를 같이 써보기
ex) 스파르타 회원 분들의 성(family name)씨가 몇개인지 궁금하다면?
[select count(distinct(필드)) from 테이블]
select distinct(name) from users;