SELECT 구문

(2020-09-21)

SQL 쿼리, Select 쿼리, FROM 절, WHERE 조건절, GROUP BY 절, HAVING 절, ORDER BY 절, VIEW 구문, 서브 쿼리

1. [SQL]  SELECT 쿼리 구문

  ㅇ DISTINCT 절
     - 특정 칼럼의 유니크한 값들
     - GROUP BY 절과 유사하나, 정렬이 보장되지 못함

  ㅇ FROM 절
     - 대상 테이블의 지정
     - 주로, 다중 테이블에 대한 질의 JOIN 조건
        . (레코드 집합집합 간의 집합 연산은, ☞ SQL 조인 참조)
     - JOIN에 대한 추가적인 조건절 
        . ON 조건절
           .. 칼럼명이 다르더라도, JOIN 조건을 구사 가능하게 하며,
           .. 명시적으로 칼럼에 대한 JOIN 조건을 주어 명확하게 해줄 수 있음
        . USING 조건절 
           .. NATURAL JOIN의 경우에, 모든 일치되는 칼럼들에 대해 JOIN이 이루어지나,
           .. USING 뒤에 칼럼명을 주어 원하는 칼럼에 대해서 만 선택적으로 JOIN 수행

  ㅇ WHERE 조건절
     - 개별 행에 대한 조건 만 가능 
        . 즉, 결과 집합을 내기 전에 각 레코드에 조건을 적용
        . 따라서, WHERE 절에는 필드(칼럼)명 만 가능하여, 별칭(alias)을 쓸 수 없음

     - 그룹핑,집계 이전에 수행되므로, WHERE절에서는 그룹핑/집계 함수가 허용 안됨

     - 다중 테이블인 경우에, FROM 절의 JOIN 조건에 해당되는 질의도 가능
        . 이때, 두 테이블에 속한 필드들에 연산자(=,>,<,>=,<=,BETWEEN 등)들을 적용하여,
                JOIN을 구사할 수 있음

  ㅇ GROUP BY 절
     - WHERE 절 조건이 먼저 적용되고, GROUP BY는 그 결과 만을 그룹핑 함
        . GROUP BY : 결과 집합 대상에 대한 기준

     * GROUP BY절 사용시, 인덱스를 거치지(사용하지) 않음
     * 컬럼 별칭 허용 안함
     * 집계 함수를 사용 않는 GROUP BY절은, SELECT DISTINCT와 동일함
     * GROUP BY절은, 결과 집합을 정렬 않으며, 정렬하려면 ORDER BY절을 사용해야 함

  ㅇ HAVING 조건절 
     - GROUP BY절 등에 의해 집계된 결과 집합에 대해서 만 행별 조건을 적용
        . 즉, 집합 결과에 추가적으로 제한하는 (더 정제해주는) 조건을 주는 것
     - 그룹별 집계 결과들을 서로 비교할 수 있음
        . 例) 평균 배송 시간이 다른 모든 평균 배송 시간 보다 초과하는 공급자를 찾는 등
        . 例) 분기별 각 항목의 주문 비율을 계산하는 경우 등
     - HAVING 절에는, GROUP BY절과 달리, 필드(칼럼)명 대신에 별칭(alias)을 쓸 수 있음
        . 단, 계산이 있는 표현식의 경우에는, 별칭 사용 못함

  ㅇ ORDER BY 절
     - 먼저 데이터들이 추출된 후에, 그 결과 집합을 만들면서 정렬 작업이 일어남
        . 즉, 먼저 데이터들이 정렬되는 것이 아님


2. [SQL]  VIEW 구문

  ㅇ SELECT 구문 만을 데이터베이스 내에 저장해놓고, 필요시 해당 구문을 불러내어 사용하는 기능

  ㅇ (형식) CREATE VIEW [뷰이름] ([필드명1],[필드명2],...) AS [SELECT 구문]

  ㅇ (사용) 통상의 SELECT 구문의 FROM절 내 테이블 명칭 처럼 사용


2. [SQL]  서브 쿼리 (Subquery)

  ㅇ 괄호 내 완전한 SELECT문을 넣고 이에 이름을 붙힌 테이블 추출 표현식
     - SQL문에 많은 추가적인 유연성을 제공하여 줌

  ㅇ 종류
     - 테이블 서브 쿼리 : 테이블 집합 전체를 반환
     - 단일 컬럼 서브 쿼리 : 여러 값을 갖는 단일 컬럼을 반환
        . (例) SELECT ... FROM ... WHERE col IN (서브쿼리)
     - 스칼라 서브 쿼리 : 값을 하나만 반환


[SQL] 1. SQL 2. SQL 쿼리 (SELECT 구문) 3. SQL 활용 4. SQL 조인 5. SQL 함수 6. DDL (데이터 조작:테이블 생성/변경) 7. SQL 용어

 
        요약목록     참고문헌