[SQL]SELECT,WHERE,ORDER BY

2025. 1. 14. 16:45·SQL

1주차 정리

1주차 복습 - SQL 문의 기본 구조

    • SQL 문이란 : DB 에서 데이터를 조회하기 위한 언어로, SQL 문법을 이용하여 DB에 명령을 내리는 것을 Query 한다고 합니다.
    • SQL 문의 기본 구조
    • select # '데이터 조회' 의 명령어로 필수 구문 from # '어디에서 데이터를 조회할까' 의 명령어로 필수 구문 where # 조건을 지정해주는 구문
    • 조건을 지정하는 방법
      • 비교연산자 : <, >, =, <>
      • 다양한 구문 : IN, BETWEEN, LIKE
      • 여러가지 조건의 적용 : AND, OR, NOT

 


2주차엔 SELECT문과  WHERE절로 원하는 데이터를 뽑는 방법을 알아볼려고 한다.

 

- 통계: 최대 / 최소 / 평균 / 개수 (MAX,MIN,AVG,COUNT)

- 통계 구하기: 기존 방법의 한계

- 동일한 범주의 데이터를 묶어주는 Group by

- 깔끔하게 데이터를 정렬해보자: Order by

 

최대 / 최소 / 평균 / 개수 (MAX,MIN,AVG,COUNT)

MAX(컬럼) :데이터의 최댓값

ex)

select MAX(price)
from food_orders

MIN(컬럼) :데이터의 최솟값

ex)

select MIN(price)
from food_orders

AVG(컬럼):데이터의 평균값

ex)

select AVG(price)
from food_orders

COUNT(컬럼):데이터의 갯수  ※컬럼명 대신 1혹은 * 사용가능

  • DISTINT:중복을 제외한 갯수

ex)

select COUNT(*)
from food_orders

 

1. [실습] 주문 금액이 30,000원 이상인 주문건의 갯수 구하기

select count(*) as '주문건의 갯수'
from food_orders
where price>=30000

 

2. [실습] 한국 음식의 주문 당 평균 음식가격 구하기

select avg(price) as '한국식당 평균가격'
from food_orders
where cuisine_type = 'korean'

 

동일한 범주의 데이터를 묶어주는 Group by

음식 종류별로 평균 음식 가격을 구하기위해 where 절을 사용해서 수십개의 쿼리를 만드는것은 매우 비효울적이다.

이 문제를 해결하기 위해 Group by 를 사용해야 한다.

 

Group by의 기본구조 

select 카테고리컬럼(원하는컬럼 아무거나),
       sum(계산 컬럼),
from
group by 카테고리컬럼(원하는컬럼 아무거나)

 

이를 이용하여 실습을 진행해보자

 

1.음식점별 주문 금액 최댓값 조회하기

select restaurant_name ,MAX(price)
from food_orders
group by restaurant_name

 

2.결제 타입별 가장 최근 결제일 조회하기

select pay_type as '결제타입',
       MAX(date) as '최근 결제일'
from payments
group by pay_type

 

  • 최근 날짜를 보고 싶을땐 MAX 를 사용해야 한다.

 

깔끔하게 데이터를 정렬해보자: Order by

SQL 결과도 원하는 값 기준으로, 오름차순 혹은 내림차순으로 정렬할 수 있다.

  • 오름차순 : 숫자가 점점 커지는 순서로 정렬
  • 내림차순 : 숫자가 점점 작아지는 순서로 정렬

Order by의 기본구조

select 카테고리컬럼(원하는컬럼 아무거나),
       sum(계산 컬럼),
from
group by 카테고리컬럼(원하는컬럼 아무거나)
order by 정렬을 원하는 컬럼 (카테고리컬럼(원하는컬럼 아무거나), sum(계산 컬럼) 둘 다 가능)

 

 이쯤에서 SQL 실행 순서가 햇갈려 문법의 실행 순서에 대해 알아보자

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

2주차 마무리 문제

음식 종류별 가장 높은 주문 금액과 가장 낮은 주문금액을 조회하고, 가장 낮은 주문금액 순으로 (내림차순) 정렬하기

select cuisine_type,

MAX(price) as '가장 높은 주문금액',

MIN(price) as '가장 낮은 주문금액'

from food_orders

group by cuisine_type

order by min(price) desc

 

 

 

 

 

 

 

'SQL' 카테고리의 다른 글

[SQL]CSV 파일을 이용해 데이터 가져오기(MY SQL)  (0) 2025.01.20
[SQL]불필요한 Query 처리방법(coalesce,<>), Pivot Table  (0) 2025.01.17
[SQL]서브쿼리,JOIN  (0) 2025.01.17
[SQL]REPLACE, SUBSTRING, CONCAT,IF, CASE  (2) 2025.01.16
[SQL]SQL의 개요  (0) 2025.01.14
'SQL' 카테고리의 다른 글
  • [SQL]불필요한 Query 처리방법(coalesce,<>), Pivot Table
  • [SQL]서브쿼리,JOIN
  • [SQL]REPLACE, SUBSTRING, CONCAT,IF, CASE
  • [SQL]SQL의 개요
코딩로봇
코딩로봇
금융 IT 개발자
  • 코딩로봇
    쟈니의 일지
    코딩로봇
  • 전체
    오늘
    어제
    • 분류 전체보기 (131)
      • JavaScript (8)
      • SQL (10)
      • 코딩테스트 (29)
        • Java (15)
        • SQL (12)
      • Java (10)
      • 프로젝트 (20)
        • 트러블슈팅 (6)
        • 프로젝트 회고 (12)
      • git,Github (2)
      • TIL (34)
      • Spring (16)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    java #arraylist #list #배열
    스파르타 코딩 #부트캠프 #첫ot
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
코딩로봇
[SQL]SELECT,WHERE,ORDER BY
상단으로

티스토리툴바