-
개발 기록 일지 SQL
*select 쿼리문의 개념
쿼리(Query)문이란? 쿼리는 질의를 의미하죠. 데이터베이스에 명령을 내리는 것을 의미합니다. 여기서 Select 쿼리문은, 데이터베이스에서 '데이터를 선택해서 가져오겠다'는 의미입니다.
Select 쿼리문은 1) 어떤 테이블에서 2) 어떤 필드의 데이터를 가져올지 로 구성됩니다.
*where 절의 개념
Where 절은, Select 쿼리문으로 가져올 데이터에 조건을 걸어주는 것을 의미해요.
예1) orders 테이블에서 결제수단이 카카오페이인 데이터만 가져와줘!
예2) point_users 테이블에서 포인트가 5000점 이상인 데이터만 가져와줘!
예3) orders 테이블에서 주문한 강의가 앱개발 종합반이면서, 결제수단이 카드인 데이터만 가져와줘!
**Select 쿼리문에 Where 절 함께 써보기
select * from orders where payment_method = "kakaopay";
"orders 테이블에서 payment_method가 kakaopay인 것만 가져와줘!"
Q) 잠깐! 왜 kakaopay가 아니라 "kakaopay"라고 쓰나요? A) kakaopay를 필드명이나 테이블명이 아닌 문자열로 인식시키려는거에요.
select * from orders where course_title = "앱개발 종합반" and payment_method = "kakaopay";
**같지않음 조건
'같지 않음' 조건은 != 로 걸 수 있습니다.
잠깐 상식! '!=' 에서 ! (느낌표)는 부정 (not)을 의미합니다. '='는 같음을 의미하니, '!='는 같지 않음이겠죠!
**포함 조건
select * from checkins where week in (1, 3);
1, 3 주차 사람들의 '오늘의 다짐'만 잘 나오죠?
**패턴 조건
select * from users where email like '%daum.net';
***활용법***
- 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로 끝나는 모든 데이터
**범위 조건
select * from orders where created_at between "2020-07-13" and "2020-07-15";
7월 13일, 7월 14일 주문데이터만 잘 나오죠?
**일부데이터만 가져오기 limit
select * from orders where payment_method = "kakaopay" limit 5;
**중복데이터 제외하고 가져오기 distinct
select distinct(payment_method) from orders;
**몇 개인지 숫자세보기 count
select count(*) from orders
***활용***
select distinct(name) from users;
SELECT count(distinct(name)) from users;
***연습***
성이 남씨인 유저의 이메일만 추출하기
select email from users where name = "남**";
Gmail을 사용하는 2020/07/12~13에 가입한 유저를 추출하기
select * from users where created_at between "2020-07-12" and "2020-07-14" and email like "%gmail.com";
Gmail을 사용하는 2020/07/12~13에 가입한 유저의 수를 세기
select count(*) from users where created_at between "2020-07-12" and "2020-07-14" and email like "%gmail.com";
naver 이메일을 사용하면서, 웹개발 종합반을 신청했고 결제는 kakaopay로 이뤄진 주문데이터 추출하기
select * from orders where email like '%naver.com' and course_title = '웹개발 종합반' and payment_method = 'kakaopay'