스파르타 - 이범규 대표님의 SQL 강의를 기반으로 작성된 SQL Read 문법 정리입니다.
select * from orders
where course_title = "앱개발 종합반" and payment_method = "kakaopay";
// orders 테이블에서
// course_title이 '앱개발 종합반'이고 payment_method가 'kakaopay'인
// row들의 모든 column을 조회하겠습니다.
쿼리 작성 전략
1) show tables로 어떤 테이블이 있는지 살펴보기
2) 제일 원하는 정보가 있을 것 같은 테이블에 select from 테이블명 쿼리 날려보기
3) 원하는 정보가 없으면 다른 테이블에도 2)를 해보기
4) 테이블을 찾았다! 조건을 걸 필드를 찾기
5) select from 테이블명 where 조건 이렇게 쿼리 완성!
!=
select * from orders
where course_title != "웹개발 종합반";
// 웹개발 종합반을 제외한 나머지를 조회
select * from orders
where created_at between "2020-07-13" and "2020-07-15";
// 생성일자가 0713 ~ 0714인 row 조회
select * from checkins
where week in (1, 3);
// week이 1이나 3인 row 조회
select * from users
where email like '%daum.net';
// email이 'daum.net` 으로 끝나는 row 조회
Like의 다양한 사용법 [참고 Ref]
%는 몇글자가 와도 상관없음, _는 하나당 한글자임 - 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로 끝나는 케이스 - where name like 'a__' name 필드값이 a로 시작하는 3자리인 케이스 - where name like '_____' name 필드값이 5자리인 케이스
select * from orders
where payment_method = "kakaopay"
limit 5;
select distinct(payment_method) from orders;
// payment_method column에 있는 값들을 중복없이 조회해줌, 어떤 값들이 있는지 알아볼 때 유용
select count(*) from orders
// orders 테이블에 row가 몇개 있는지 숫자세줘~~
SELECT count(distinct(name)) from users;
// 이런식으로 count와 distinct를 연계해서 몇가지 종류의 case가 있는지 쉽게 알 수도 있다.
SELECT mem_id, SUM(price*amount)
FROM buy
GROUP BY mem_id
HAVING SUM(price*amount) > 1000;