1. 계산 수행 함수 (SUM, AVERAGE, COUNT, MIN, MAX)
1.1 기본 사칙연산
연산자 | 연산 |
+ | 덧셈 |
- | 뺄셈 |
* | 곱셈 |
/ | 나눗셈(몫) |
% | 나머지 |
-- EX) 주문별 음식 준비시간(요리+배달) 구하기
-- 테이블: food_orders, 주문id: order_id, 요리시간: food_preparation_time, 배달시간: delivery_time
select order_id,
food_preparation_time,
delivery_time,
food_preparation_time + delivery_time as total_time
from food_orders
1.2 합계 : SUM(컬럼)
-- EX) 전체 식당의 음식 요리시간 합 구하기.
-- 테이블: food_orders , 요리시간: food_preparation_time
SELECT SUM(food_preparation_time) AS total_food_preparation_time
FROM food_orders
1.3 평균 : AVERAGE(컬럼)
-- EX) 모든 주문의 평균 배달 시간 구하기.
-- 테이블: food_orders , 배달 시간: delivery_time
SELECT AVG(delivery_time) AS avg_delivery_time
FROM food_orders
1.4 데이터 개수 : COUNT(컬럼)
- 컬럼명 대신 1 혹은 * 사용 가능 (뭘 쓰던 WHERE절에 맞는 전체 데이터개수를 구한다)
- 원하는 컬럼이 몇개의 값을 가지고 있는지 구할 때. 즉, 중복 컬럼을 제외한 개수를 구할 때 : DISTINCT
-- EX) 주문 테이블의 전체 주문 수와 주문한 고객의 수 구하기.
-- 테이블: food_orders , 고객 ID: customer_id
SELECT COUNT(1) AS count_of_orders,
COUNT(DISTINCT customer_id) AS count_of_customers
FROM food_orders
1.5 최소, 최대 : MIN(컬럼), MAX(컬럼)
-- EX) 주문 최고금액과 최저금액 구하기
-- 테이블: food_orders, 주문 금액: price
SELECT MIN(price) AS min_price,
MAX(price) AS max_price
FROM food_orders
2. 범주 지정 (GROUP BY)
: 여러번의 Query 없이 카테고리를 지정하여 수식 함수로 연산 할 수 있는 구문.
SELECT 컬럼을 그대로 사용하고 싶다면, 컬럼의 순서를 숫자로 작성하면 컬럼을 작성한 것과 같은 결과가 나온다.
-- 기본 구조
SELECT 카테코리 컬럼(구분하고자 하는 단위)
FROM 테이블
GROUP BY 카테고리 컬럼(구분하고자 하는 단위)
-- SELECT 조건 그대로 사용
SELECT 카테고리 컬럼1,
카테고리 컬럼2
FROM 테이블
GROUP BY 1, 2
-- EX) 식당별 주문 금액 최댓값 조회하기.
-- 테이블: food_orders, 식당이름: restaurant_name, 주문금액: price
SELECT restaurant_name,
MAX(price) "최대 주문금액"
FROM food_orders
GROUP BY restaurant_name
-- 또는 GROUP BY 1
3. 결과 정렬 (ORDER BY)
: Query 결과를 원하는 순서대로 정렬하는 구문.
- 오름차순 - ASC(생략 가능)
- 내림차순 - DESC
-- 기본 구조
SELECT 카테코리 컬럼
FROM 테이블
ORDER BY 정렬 기준 컬럼 ASC/DESC
-- EX) 식당 이름 기준 오름차순으로 주문 정렬하기
-- 테이블: food_orders , 식당 이름: restaurant_name
SELECT *
FROM food_orders
ORDER BY restaurant_name ASC
-- 또는 ORDER BY restaurant_name
4. SQL문 기본구조 및 작성
- SQL문 기본 구조
SELECT
FROM
WHERE
GROUP BY
ORDER BY
- SQL 실제 실행 순서
- FROM : 각 테이블 확인
- ON : 조인 조건 확인
- JOIN : 테이블 조인 (병합)
- WHERE : 데이터 추출 조건 확인
- GROUP BY : 특정 칼럼으로 데이터 그룹화
- HAVING : 그룹화 이후 데이터 추출 조건 확인
- SELECT : 데이터 추출
- DISTINCT : 중복 제거
- ORDER BY : 데이터 정렬
- SQL문 작성 요령
- Query 적기 전에 흐름 정리하기
- 어떤 테이블에서 데이터를 뽑을 것인가
- 어떤 컬럼을 이용할 것인가
- 어떤 조건을 지정해야 하는가
- 어떤 함수(수식)를 이용해야 하는가
- 구문으로 만들기
- 전체 구조로 합치기
'Mysql > SQL 기초' 카테고리의 다른 글
[엑셀보다 쉽고 빠른 SQL] 4주차 핵심정리 (0) | 2024.06.16 |
---|---|
[엑셀보다 쉽고 빠른 SQL] 3주차 핵심정리 (0) | 2024.06.14 |
[엑셀보다 쉽고 빠른 SQL] 1주차 핵심정리 (1) | 2024.06.12 |