[MySQL] 4. SQL SELECT 절의 형식(ORDER BY 절과 GROUP BY 절)

2022. 4. 6. 15:02·📟 Database/혼자 공부하는 SQL

SELECT 절의 형식은 다음과 같으며 순서가 바뀌면 안된다.

SELECT 열_이름
    FROM 테이블_이름
    WHERE 조건식
    GROUP BY 열_이름
    HAVING 조건식
    ORDER BY 열_이름
    LIMIT 숫자

 

이 중 아직 다루지 않은 GROUP BY, HAVING, ORDER BY, LIMIT에 대해 알아보겠다.


ORDER BY 절은 값이나 개수에 대해서는 영향을 미치지 않지만, 결과가 출력되는 순서를 조절한다.

 

아래의 예제는 ORDER BY 문을 이용하여 결과를 원하는 열에 따라 정렬 출력하는 예제이다.

USE market_db;

SELECT mem_id, mem_name, debut_date
    FROM member
    ORDER BY debut_date;

 

 

Result

 

 

ORDER BY의 기본 정렬 기준은 오름차순이며, 내림차순 정렬을 하기 위해서는 DESC 문을 추가해주어야 한다.

SELECT mem_id, mem_name, debut_date
    FROM member
    ORDER BY debut_date DESC;

 

Result

 

 

WHERE 문을 추가할 경우 순서에 맞게 ORDER BY 보다 먼저 작성해주어야 한다.

SELECT mem_id, mem_name, debut_date, height
    FROM member
    WHERE height >= 164
    ORDER BY height DESC;

 

Result

 

 

만약 동일한 값이 있다면 정렬 기준을 추가하여 순서를 바꿀 수도 있다.

SELECT mem_id, mem_name, debut_date, height
    FROM member
    WHERE height >= 164
    ORDER BY height DESC, debut_date ASC;

 

Result


LIMIT 문을 사용하면 테이블에서 원하는 갯수의 행만 출력할 수 있다.

SELECT * FROM member LIMIT 3;

 

Result

 

 

ORDER BY 문과 함께 쓸 경우 다음과 같이 사용할 수 있다.

SELECT mem_name, debut_date
    FROM member
    ORDER BY debut_date
    LIMIT 3;

 

Result

 

 

LIMIT 문에 다음과 같이 조건을 추가할 경우 의미가 달라지게 된다.

아래의 구문은 3번째 인덱스부터 차례대로 2개를 뽑는다는 의미이다.

SELECT mem_name, height
    FROM member
    ORDER BY height DESC
    LIMIT 3, 2;

 

Result


DISTINCT 문을 이용하면 중복되는 값을 제거해주고 종류 별로 한 개씩만 출력할 수 있다.

자주 사용되는 구문 중 하나로써 참고로 기억해 두는 것이 좋다.

SELECT DISTINCT addr FROM member;

 

Result


GROUP BY 절은 말 그대로 그룹으로 묶어주는 역할을 한다.

 

GROUP BY 절과 함께 주로 함께 사용되는 함수로 집계 함수가 있으며 데이터를 그룹화 해주는 기능을 수행한다.

 

집계 함수의 종류에는 크게 SUM, AVG, MIN, MAX, COUNT가 있다.

SELECT mem_id, SUM(amount) FROM buy GROUP BY mem_id;

 

Result

 

 

별칭을 지정하여 데이터 가독성을 높일 수 있다.

SELECT mem_id "회원 아이디", SUM(price * amount) "총 구매 금액" FROM buy GROUP BY mem_id;

 

Result

 

 

SELECT mem_id, AVG(amount) "평균 구매 개수" FROM buy GROUP BY mem_id;

 

Result

 

 

COUNT 문을 이용하여 NULL 값을 제외한 행의 개수 출력

SELECT COUNT(phone1) "연락처가 있는 회원" FROM member;

 

Result


HAVING 문은 GROUP BY 절에 조건을 추가할 때 사용한다.

SELECT mem_id "회원 아이디", SUM(price * amount) "총 구매 금액"
    FROM buy
    GROUP BY mem_id
    HAVING SUM(price * amount) > 1000;

 

Result

 

 

SELECT mem_id "회원 아이디", SUM(price * amount) "총 구매 금액"
    FROM buy
    GROUP BY mem_id
    HAVING SUM(price * amount) > 1000
    ORDER BY SUM(price * amount) DESC;

 

Result

저작자표시 (새창열림)

'📟 Database > 혼자 공부하는 SQL' 카테고리의 다른 글

[MySQL] 6. MySQL의 데이터 형식(정수형, 문자형, 실수형, 날짜형)과 형 변환  (0) 2022.04.06
[MySQL] 5. 데이터 변경을 위한 SQL 문(INSERT, UPDATE, DELETE)  (0) 2022.04.06
[MySQL] 3. SQL 기본 문법(SELECT ~ FROM ~ WHERE)  (0) 2022.04.05
[MySQL] 2. 데이터베이스 개체(인덱스, 뷰, 스토어드 프로시저)  (0) 2022.04.04
[MySQL] 1. 데이터베이스 만들기  (0) 2022.04.04
'📟 Database/혼자 공부하는 SQL' 카테고리의 다른 글
  • [MySQL] 6. MySQL의 데이터 형식(정수형, 문자형, 실수형, 날짜형)과 형 변환
  • [MySQL] 5. 데이터 변경을 위한 SQL 문(INSERT, UPDATE, DELETE)
  • [MySQL] 3. SQL 기본 문법(SELECT ~ FROM ~ WHERE)
  • [MySQL] 2. 데이터베이스 개체(인덱스, 뷰, 스토어드 프로시저)
Baeg-won
Baeg-won
  • Baeg-won
    좋았다면 추억이고 나빴다면 경험이다.
    Baeg-won
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 🍃 Spring, Spring Boot
        • 스프링 프레임워크 기초
        • 스프링 핵심 원리 - 기본편
        • 자바 ORM 표준 JPA 프로그래밍 - 기본편
        • 스프링 MVC
        • 실전! 스프링 부트와 JPA 활용1 - 웹 애플리..
      • 🥑 Web Technoloy
      • 🚗 Backend Toy Project
        • 스프링 부트 게시판
        • Photogram
        • Baeg-won Clothing Gallery
      • 🥇 Problem Solving
        • Breadth-First Search
        • Depth-First Search
        • Backtracking
        • Simulation
        • Two-pointer
        • Binary Search
        • Greedy
        • Dynamic Programming
        • Minimum Spanning Tree
        • Dijkstra
        • Floyd warshall
      • ☕ Java
        • 명품 자바 에센셜
        • Applications
      • 🍦 JavaScript
        • JavaScript 기초
      • 🐧 Linux
        • 이것이 리눅스다(CentOS 8)
      • 📟 Database
        • 혼자 공부하는 SQL
      • 🧬 Data Structure
      • 🎬 HTML
      • 🎤 Tech Interview
      • 📌 etc
        • Unity 2D Raising Jelly Game
        • C++
        • 영어 쉐도잉
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Baeg-won
[MySQL] 4. SQL SELECT 절의 형식(ORDER BY 절과 GROUP BY 절)
상단으로

티스토리툴바