[엑셀보다 쉽고 빠른 SQL] 2주차 핵심정리

2024. 6. 13. 16:32·Mysql/SQL 기초
목차
  1.  
  2. 1. 계산 수행 함수 (SUM, AVERAGE, COUNT, MIN, MAX)
  3. 2. 범주 지정 (GROUP BY)
  4. 3. 결과 정렬 (ORDER BY)
  5. 4. SQL문 기본구조 및 작성

 

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 실제 실행 순서

  1. FROM : 각 테이블 확인
  2. ON : 조인 조건 확인
  3. JOIN : 테이블 조인 (병합)
  4. WHERE : 데이터 추출 조건 확인
  5. GROUP BY : 특정 칼럼으로 데이터 그룹화
  6. HAVING : 그룹화 이후 데이터 추출 조건 확인
  7. SELECT : 데이터 추출
  8. DISTINCT : 중복 제거
  9. ORDER BY : 데이터 정렬

 

- SQL문 작성 요령

  1. Query 적기 전에 흐름 정리하기
    1. 어떤 테이블에서 데이터를 뽑을 것인가
    2. 어떤 컬럼을 이용할 것인가
    3. 어떤 조건을 지정해야 하는가
    4. 어떤 함수(수식)를 이용해야 하는가
  2. 구문으로 만들기
  3. 전체 구조로 합치기

 

 

 

'Mysql > SQL 기초' 카테고리의 다른 글

[엑셀보다 쉽고 빠른 SQL] 4주차 핵심정리  (0) 2024.06.16
[엑셀보다 쉽고 빠른 SQL] 3주차 핵심정리  (0) 2024.06.14
[엑셀보다 쉽고 빠른 SQL] 1주차 핵심정리  (1) 2024.06.12
  1.  
  2. 1. 계산 수행 함수 (SUM, AVERAGE, COUNT, MIN, MAX)
  3. 2. 범주 지정 (GROUP BY)
  4. 3. 결과 정렬 (ORDER BY)
  5. 4. SQL문 기본구조 및 작성
'Mysql/SQL 기초' 카테고리의 다른 글
  • [엑셀보다 쉽고 빠른 SQL] 4주차 핵심정리
  • [엑셀보다 쉽고 빠른 SQL] 3주차 핵심정리
  • [엑셀보다 쉽고 빠른 SQL] 1주차 핵심정리
G_vieve
G_vieve
할일을 하자.
개발하는 날할일을 하자.
G_vieve
개발하는 날
G_vieve
전체
오늘
어제
  • 분류 전체보기 (18)
    • TIL (5)
    • 코테 (0)
      • 문제 (0)
      • 알고리즘 이론 (0)
    • Programming Language (1)
      • Java (1)
    • Mysql (4)
      • SQL 기초 (4)
    • Git&GitHub (8)

인기 글

태그

최근 댓글

hELLO· Designed By정상우.v4.5.3
G_vieve
[엑셀보다 쉽고 빠른 SQL] 2주차 핵심정리

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.