SQL/혼자 공부하는 SQL (한빛미디어)

3장 2절. 확장 형식 (SELECT)

hw09 2025. 8. 11. 13:42

확장 형식

☑️ SELECT (DISTINCT) 열_이름
      FROM 테이블_이름
      WHERE 조건식
      GROUP BY 열_이름
      HAVING 조건식
      ORDER BY 열_이름 (ASC or DESC)
      LIMIT 숫자;
  • SELECT문에 나오는 절은 생략 가능하지만, 사용해야 한다면 순서를 지켜야 함
  • (괄호 안의 내용)은 생략 가능
  • DISTINCT: 중복된 데이터를 1개만 남기고 제거

 

ORDER BY 절

  • 기능: 결과가 출력되는 순서 조절
  • ASC(Ascending, 오름차순): 기본값, 생략 가능
    DESC(Descending, 내림차순): 열_이름 뒤에 작성하여 설정 가능
  • 정렬 기준은 여러 개 열로 지정 가능
    > Order by 열_이름1 (ASC or DESC), 열_이름2 (ASC or DESC)

LIMIT 절

  • 기능: 출력하는 개수 제한
  • 형식: LIMT 시작, 개수
    예를 들어, [ LIMIT 3 > LIMIT 0,3과 동일, 즉 0번째부터 3건],
                     [LIMIT 2,3 > 2번째부터 3건만 조회]
  • 대부분 ORDER BY로 정렬한 후 앞에서부터 몇 건을 추출

GROUP BY 절

  • 기능: 데이터를 그룹화 해주는 기능
  • 집계함수: GROUP BY와 함께 주로 사용
    SUM() 합계, AVG() 평균, MIN() 최소값, MAX() 최대값
    COUNT() 행의 개수, COUNT(DISTINCT) 행의 개수(중복은 1개만 인정)
    > COUNT(*)는 모든 행의 개수, COUNT(열_이름)은 NULL값인 데이터를 제외한 행의 개수
☑️ SELECT SUM(amount*price) "총 구매 금액"  -- 집계함수는 SELECT 뒤에
      FROM 테이블_이름
      GROUP BY 열_이름;
     (참고) amount와 price는 테이블의 열_이름, 큰따옴표(")로 별칭 사용

HAVING 절

  • 기능: 집계 함수에 대해서 조건을 제한하는 것, 반드시 GROUP BY 절 다음에 위치
☑️ SELECT SUM(amount*price) "총 구매 금액"  
      FROM 테이블_이름
      GROUP BY 열_이름;
      HAVING SUM(amount*price) > 10000;