-
[MySQL] 문법 총정리데이터 공부하기 2022. 8. 29. 23:33
[1주차 문법 정리]
Where Where 절은, Select 쿼리문으로 가져올 데이터에 조건을 걸어주는 것을 의미해요. select * from orders where payment_method = "kakaopay"; 예1) orders 테이블에서 결제수단이 카카오페이인 데이터만 가져와줘!
예2) point_users 테이블에서 포인트가 5000점 이상인 데이터만 가져와줘!
예3) orders 테이블에서 주문한 강의가 앱개발 종합반이면서, 결제수단이 카드인 데이터만 가져와줘!!= 같지 않음 select * from orders where payment_method != 'CARD'; 결제수단이 CARD가 아닌 주문데이터만 추출 between 범위 select * from orders where created_at between "2020-07-13" and "2020-07-15"; 7월 13일, 7월 14일의 주문데이터만 보고 싶어 in 포함 select * from checkins where week in (1, 3); 1, 3주차 사람들의 '오늘의 다짐' 데이터만 보고 싶어 like 패턴 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로 끝나는 모든 데이터
Limit 일부 데이터만 가져오기 select * from orders where payment_method = "kakaopay" limit 5; Distinct 중복 데이터는 제외하고 가져오기 select distinct(payment_method) from orders; Distinct와 Count를 같이 써보기:
- select distinct(name) from users;
Count 몇 개인지 숫자 세보기 select count(*) from orders [2주차 문법 정리]
Group by select name, count(*) fromusers group by name; 위 쿼리가 실행되는 순서: from → group by → select 성씨별로 몇 명이 회원이 있는지 구하려고 where 절을 사용해서 수십개의 쿼리를 작성하는 것은 너무 비효율적입니다. 이 문제를 Group by를 사용 Min SELECT week, min(likes) fromcheckins c
group by week동일한 범주 특정 필드의 최솟값은 min(필드명)을 사용해서 해요 Max SELECT week, max(likes) from checkins c
group by weekAvg SELECT week, avg(likes) from checkins c
group by week소수점 반올림시!
Round( *, 소수점 갯수)
- 그냥 반올림 시 '0'Sum SELECT week, sum(likes) from checkins c
group by weekOrder by select name, count(*) from users group by name order by count(*); desc select name, count(*) from users group by name order by count(*); desc 내림차순 정렬시 마지막에 desc(descending) asc select name, count(*) from users group by name order by count(*); asc 오름차순 (할필요 없음, 기본이 오름차순이라..) Alias 쿼리가 점점 길어지면서 종종 헷갈리는 일이 생길 수 있습니다. 그래서 SQL은 Alias라는 별칭 기능을 지원 as ~ OO로 해당 필드명을 수정할 수 있음
o.course_title을 orders 테이블의 course_title로 별칭을 붙힘[3주차 문법 정리]
Ratio 비율 A/B SELECTcount(pu.point_user_id),
count(u.user_id),
count(pu.point_user_id) / count(u.user_id) as ratioRatio + round 반올림 적용 round( count(pu.point_user_id) / count(u.user_id)) as ratio [4주차 문법 정리]
SUBSTRING_INDEX 이메일 주소에서 @앞의 아이디만 가져오거나, @뒤의 이메일 도메인을 가져오고 싶을때 @앞에 아이디만
select user_id, email, SUBSTRING_INDEX(email, '@', 1) from users
@뒤의 이메일만
select user_id, email, SUBSTRING_INDEX(email, '@', -1) from usersSUBSTRING orders 테이블에서 created_at을 날짜까지만 출력하고 싶을때 select order_no, created_at, substring(created_at,1,10) as date from orders
*1 = 시작 포인트
*10 = 짜르고 싶은 포인트'데이터 공부하기' 카테고리의 다른 글
[MySQL] 실전 유용 문법 - Case (0) 2022.08.29 [MySQL] 실전 유용 문법 - 문자열 (0) 2022.08.29 [MySQL] 'with 절' in Subquery (0) 2022.08.29 [MySQL] 수업 4주차 - Subquery (0) 2022.08.29 [MySQL] 수업 3주차 - Join (0) 2022.08.08