본문 바로가기
DBMS(SQL)

DBMS실습 (SQL 심화) - ORDER BY, LIMIT, DISTINCT, GROUP BY, 서브 쿼리, 다중 조건문(7일차)

by JoinInNoetic 2023. 10. 9.

◆ ORDER BY 구문

    - SELECT 문을 사용할 때 출력되는 결과물의 정렬이 필요할 때 사용

    - 오름차순 : ASC / 내림차순 : DESC ( 기본값은 오름차순, ASC는 생략가능)

 

    ○ 사용 방법

        - 기본 형태

            SELECT * FROM [테이블명] ORDER BY [컬럼명] (ASC/DESC);

        - 컬럼 합산 사용

            SELECT 컬럼1 + 컬럼2 AS [사용할 컬럼명] FROM [테이블명] ORDER BY [사용할 컬럼명] (ASC/DESC);

        - 컬럼의 숫자를 사용(숫자 번째 컬럼)

            SELECT * FROM [테이블명] ORDER BY [숫자] (ASC/DESC);

        - 여러 컬럼을 사용

            SELECT * FROM [테이블명] ORDER BY [숫자1] (ASC/DESC), [숫자2] (ASC/DESC);

        -> [숫자1]번째 컬럼을 기준으로 (오름차순/내림차순) 정렬한 상태에서 [숫자2]번째 열을 기준으로

        (오름차순/내림차순) 정렬

        * 숫자말고 컬럼명도 가능

 

 

        # 실습

 

 

 

◆ LIMIT 구문

    - SELECT 구문의 결과 레코드 수를 지정

    - SELECT * FROM [테이블명] LIMIT [제한할 숫자];

    - SELECT * FROM [테이블명] LIMIT [시작할 인덱스 숫자], [출력할 레코드개수]

    ( ※ 인덱스 숫자는 0부터 시작)

 

 

◆ DISTINCT 구문

    - 결과 값들 중 중복이 있을 시 제거

    - SELECT DISTINCT * FROM [테이블명];

 

◆ GROUP BY 구문

    - 특정 컬럼을 기준으로 집계 함수를 사용하여 건수(COUNT), 합계(SUM), 평균(AVG) 등 집계성 데이터를

      추출할 때 사용

    - 컬럼을 여러개 지정 가능

    - WHERE 구문처럼 HAVING 구문으로 조건 설정

    ※ WHERE은 기존 속성에 조건걸기( 그룹화 되기 전 컬럼에 조건걸기 )

        HAVING은 기준이 된 컬럼 혹은 집계함수로 생성된 컬럼에 조건걸기 ( 그룹화 된 후 컬럼에 조건걸기 )

    - SELECT 집계함수(계산할 컬럼) FROM [테이블명], WHERE 조건 GROUP BY [집계함수가 사용된 컬럼명];

    - SELECT 집계함수(계산할 컬럼) FROM [테이블명], WHERE 조건

      GROUP BY [집계함수가 사용된 컬럼명] HAVING 조건;

 

 

 

◆ 서브 쿼리

    - 하나의 SQL 문에 포함되어 있는 또 다른 SQL 문

    - 괄호로 감싸서 사용

    - 분류

        ● 단일행 서브 쿼리

            - 서브 쿼리의 결과가 하나일 때

            - >, =, < 등 사용

 

 

        ● 다중행 서브 쿼리

            - 서브 쿼리의 결과가 두 개 이상일 때

            - IN, ANY, ALL, SOME, EXISTS 등 사용

 

◆ 다중 조건문

    - if 조건을 여러개 사용 (참 또는 거짓 결과란에 IF 추가)

    - SELECT IF(조건, 참, IF(조건, 참, 거짓)) FROM [테이블명];