1주차 복습
기본 구조
- SQL문 DB에서 데이터를 조회하기 위한 언어
- Query SQL 문법을 이용하여 DB에 명령을 내리는 것
SELECT # 데이터 조회 - 필수 구문 FROM # 어디에서 데이터를 조회할까 - 필수 구문 WHERE # 조건 지정
조건 지정
비교연산자 <, >, =, <> 구문 IN, BETWEEN, LIKE 여러가지 조건 AND, OR, NOT
사칙연산 가능
더하기 +
빼기 -
곱하기 *
나누기 /
합계 SUM(컬럼명)
평균 AVG(컬럼명)
데이터 개수 COUNT(컬럼명)
전체 개수를 구할때 COUNT(1) or COUNT(*)
몇 개의 값을 가지고 있는지 DISTINCT
예) 주문 테이블의 전체 주문은 몇 건인지 : COUNT
주문을 한 고객은 몇 명인지 : DISTINCT
최소값 MIN(컬럼명)
최대값 MAX(컬럼명)
주문 금액이 30,000원 이상인 주문건의 갯수 구하기
나눠서 생각하기
1) 주문 금액이 30,000원 이상인 주문건
SELECT order_id -- 주문명
FROM food_orders
WHERE price >= 30000 -- 주문금액 조건
2) 개수 구하기
SELECT COUNT(order_id) -- COUNT 사용
FROM food_orders
WHERE price >= 30000
3) 깔끔하게 다듬기 / 최종코드✨
SELECT COUNT(order_id) as count_of_order -- 별명
FROM food_orders
WHERE price >= 30000
한국 음식의 주문 당 평균 음식가격 구하기
나눠서 생각하기
1) 한국 음식의 음식가격 불러오기
SELECT price -- 음식 가격
FROM food_orders
WHERE cuisine_type = 'korean' -- 한국 음식
2) 평균 가격 구하기
SELECT AVG(price) -- AVG 사용
FROM food_orders
WHERE cuisine_type = 'korean'
3) 깔끔하게 다듬기 / 최종코드✨
SELECT AVG(price) as average_price -- 별명
FROM food_orders
WHERE cuisine_type = 'korean'
여러번의 쿼리 없이 카테고리 지정 연산
GROUP BY 기본 구조
SELECT 카테고리 컬럼,
sum(계산 컬럼)
FROM 테이블명
GROUP BY 카테고리 컬럼
음식점별 주문 금액 최댓값 조회하기
SELECT restaurant_name , -- 음식점명
MAX(price) max_price -- max 사용
FROM food_orders
GROUP BY restaurant_name
결제 타입별 가장 최근 결제일 조회하기
SELECT pay_type, -- 결제타입
MAX(date) recent_date -- max 사용
FROM payments
GROUP BY pay_type
오름차순 혹은 내림차순으로 정렬
ORDER BY 기본 구조
SELECT 카테고리컬럼,
SUM(계산 컬럼),
from
GROUP BY 카테고리컬럼
ORDER BY 정렬 원하는 컬럼 -- 오름차순
ORDER BY 정렬 원하는 컬럼 desc -- 내림차순
음식점별 주문 금액 최댓값 조회 후 최대값 기준 내림차순 정렬하기
SELECT restaurant_name ,
MAX(price) max_price
FROM food_orders
GROUP BY restaurant_name
ORDER BY MAX(price) desc -- 내림차순 정렬
고객을 이름 순으로 오름차순으로 정렬하기
SELECT *
FROM customers
ORDER BY name -- 이름 오름차순 정렬
+ 두 가지 조건 정렬도 가능!
SELECT *
FROM customers
ORDER BY gender, name -- 성별 > 이름 오름차순 정렬
음식 종류별 가장 높은 주문 금액과 가장 낮은 주문금액을 조회하고, 낮은 주문금액 순으로 내림차순 정렬하기
나눠서 생각하기
1) 음식 종류별 가장 높은금액과 가장 낮은 주문금액 조회
SELECT cuisine_type,
min(price) min_price, -- 최소금액
max(price) max_price -- 최대금액
FROM food_orders
GROUP BY cuisine_type -- 음식 종류별
2) 낮은 주문금액순으로 정렬! 완성✨
SELECT cuisine_type,
min(price) min_price,
max(price) max_price
FROM food_orders
GROUP BY cuisine_type
ORDER BY min_price desc -- 내림차순 정렬
SQL 문법을 연습해요 5 - 공부하다보니 팀 프로젝트 시간이 왔어요!
우리 조는 아티클 스터티를 매일 해서 미리 준비된 아티클이 떨어졌다. 그런데 아티클을 읽고 인사이트 기록을 남기는 방식이 매우 좋은 것 같아서 개인적으로 읽을거리들을 미리 북마크 해두기로 결정했다🫡
테크 블로그들이 워낙 잘 되어있으니 내가 관심 있었던 회사들 위주로 한번 훑어보고 내일부터는 혼자서라도 아티클 스터디를 해봐야쥐
SQL 강의는 엑셀 같아서 쉽다고 생각했는데 주차가 더해질수록 점점 복잡한 함수를 사용하고 있다. 오늘은 4주차 강의를 들었는데 서브쿼리문이 나오면서 살짝 강의 듣는 속도가 더뎌짐. 그래도 2주차까지 복습했으니까 나중에 다시 4주차를 복습할땐 쉽지 않을까? 자주 사용하는 함수는 자연스럽게 쿼리 작성이 가능한 것 같은데, 이외의 것들은 다시 찾아봐야 하는 경우도 있어서 확실히 복습하는 게 좋은 것 같다.
ADsP 시험이 얼마 남지 않아서 얼른 SQL 강의 끝내놓고 집중하고 싶다. 너무 조급해하지 말고 시간 분배를 잘 해봐야겠다. 아 그리고 SQLD 시험도 오늘부터 접수라 호다닥 하고 왔다. 욕심인가 싶기도 하지만 시간 여유가 있을때 따 놓는게 좋을 것 같아서, 둘 다 한방에 따고싶다. 2월말부터 3월까지 꽤 바쁘겠지만 잘할 수 있겠지..? 화이팅! 🍀 마저 강의나 들으러 가야겠다.. 총총..