SQL 활용

(2017-08-01)
1. SELECT 쿼리

  ㅇ WHERE 절, HAVING 절
     - WHERE 조건절  : 각 개별 행에 대한 조건 만 가능 (그룹핑/집계 함수는 허용 안됨)
        . 즉, 결과 집합을 내기 전에 각 레코드에 조건을 적용
        . 따라서, WHERE 절에는 필드(칼럼)명 만 가능하여, 별칭(alias)을 쓸 수 없음
     - HAVING 조건절 : 결과 집합에 대해 행별 조건을 적용
        . 집합 결과에 추가적으로 제한하는 조건을 줌
        . 따라서, HAVING 절에는 필드(칼럼)명 대신에 별칭(alias)을 쓸 수 있음

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

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

  ㅇ 데이터 분석을 위한 그룹핑 기능 관련
     - Aggregate 기능 : COUNT(), SUM(), AVG(), MAX(), MIN() 등 집계 함수
        . 그룹 당 단 하나의 결과 만을 주는 다중행을 대상으로하는 집계 함수

     - Group 기능      : 例) ROLLUP, CUBE, GROUPING SETS
     - Window 기능

  ㅇ SELECT 결과 집합의 행 번호 매기기
     - ORACLE : rownum
     - MySQL  : @rownum (세션 변수 활용)
        . (SET @rownum:=0; SELECT (@rownum:=@rownum+1) ... )

  ㅇ Top N 쿼리
     - ORACLE     :  SELECT colnames FROM tablename WHERE ROWNUM <= N
     - SQL Server :  SELECT TOP(N) colnames FROM tablename
     - MySQL      :  SELECT colnames FROM tablename LIMIT N


2. 조건문 구현

  ㅇ CASE 식 : 
     - 구문 형식    : CASE WHEN 평가식 THEN 실행결과식 ELSE 기타실행식 END
     - 적용 가능 식 : SELECT, WHERE, GROUP BY, HAVING, ORDER BY 내 적용 가능


3. 다중 테이블집합 연산 비교
     - 합집합 : WHERE OR,  SELECT () UNION SELECT ()
     - 교집합 : WHERE AND, SELECT () INTERSECT SELECT ()
     - 차집합 :            SELECT () EXCEPT SELECT ()

  ㅇ 다중 테이블 탐색
     - JOIN 형태
        . 내부 조인 : 기본적으로, 가능한 모든 행과의 조합(카르테시안 곱)을 생성
           .. INNERE JOIN, CROSS JOIN, JOIN 모두 같음
        . 외부 조인 (왼쪽 또는 오른쪽) : 다른 테이블의 행과 일치하지 않은 행도 보이기 가능
     - 서브 쿼리 형태
     - UNION 형태


4. 테이블 생성

  ㅇ 현존 테이블로부터 새로운 테이블 생성
     - CREATE TABLE 새테이블명 AS (SELECT * FROM 현테이블명);

  ㅇ 제약조건 (Constraint)
     - NOT NULL, UNIQUE, PRIMARY KEY, FOREIGN KEY, CHECK, DEFAULT


5. 테이블 갱신

  ㅇ JOIN 활용
     - UPDATE 테이블A a INNER JOIN 테이블B b ON a.i = b.i SET a.갱신컬럼 = (갱신식)


[SQL]1. SQL  2. SQL 기초 활용  3. RQBE  

 
        최근수정     모바일웹     참고문헌