SQL 활용

(2018-05-13)

Select 쿼리

1. SELECT 쿼리 구문

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

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

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

  ㅇ HAVING 조건절 
     - 결과 집합에 대해서 만 행별 조건을 적용
        . 즉, 집합 결과에 추가적으로 제한하는 조건을 주는 것
        . 따라서, HAVING 절에는 필드(칼럼)명 대신에 별칭(alias)을 쓸 수 있음

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

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


2. SQL 활용 例)

  ㅇ SELECT 결과 집합의 행 번호 매기기
     - ORACLE : rownum
     - MySQL  : @rownum (세션 변수 활용)
        . SET @rownum:=0; SELECT (@rownum:=@rownum+1) AS num, ... FROM 테이블명 ... 
        . SELECT (@row_number:=@row_number + 1) AS num, ... 
                   FROM (SELECT @row_number:=0) AS t, 테이블명 ...

  ㅇ 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


3. SQL 함수 

  ㅇ 구분
     - 내장 함수
        . 단일 행 함수 : 숫자형 함수, 문자열 함수, 날짜형 함수, 형변환 함수 등
           .. 입력이 단일 행인 경우
        . 다중 행 함수 : 집계 함수, 그룹 함수, 윈도우 함수
           .. 입력이 다중 행인 경우
     - 사용자 정의 함수

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


4. SQL 조건식 구현

  ㅇ (조건 분기)  CASE 식 
     - 조건 분기를 하며, 함수와 같은 성격을 갖음
        . 조건 식에 따라 분기
     - 구문 형식
       
CASE WHEN <평가식> THEN <식>
     WHEN <평가식> THEN <식>
      ...
     ELSE <기타식>
END
- 적용 가능 위치 . SELECT, WHERE, GROUP BY, HAVING, ORDER BY 내 적용 가능 - 표현 방법 구분 . Simple Case Expression (단순 CASE 식) . Searched Case Expression (검색 CASE 식) ㅇ (조건 술어) 쿼리 추출 조건을 기술하는 술어(Predicate) - 술어 종류 . LIKE : 문자열 부분 일치의 검색 (전방 일치, 중간 일치, 후방 일치) . BETWEEN . IS NULL(IS NOT NULL) . IN . EXISTS 5. 테이블 생성 및 갱신 ㅇ 테이블 생성 - 현존 테이블로부터 새로운 테이블 생성 . CREATE TABLE 새테이블명 AS (SELECT * FROM 현테이블명); - 제약조건 (Constraint) . NOT NULL, UNIQUE, PRIMARY KEY, FOREIGN KEY, CHECK, DEFAULT ㅇ 테이블 갱신 - JOIN 활용 . UPDATE 테이블A a INNER JOIN 테이블B b ON a.i = b.i SET a.갱신컬럼 = (갱신식) 6. [참고사항] ㅇ 다중 테이블에 대한 SQL JOINsSQL JOINs 참조


[SQL] 1. SQL 2. SQL 기초 활용 3. SQL 조인 4. RQBE 5. SAG
  1.   기술공통
  2.   기초과학
  3.   진동/파동
  4.   방송/멀티미디어/정보이론
  5.   전기전자공학
  6.   통신/네트워킹
  7.   정보기술(IT)
        1. 정보기술
    1.   전산기초
    2.   컴퓨터구조
    3.   프로그래밍
    4.   데이터베이스
          1. DB
      1.   데이터베이스 기초
      2.   관계형데이터베이스
            1. RDB
            2. RDBMS
            3. 관계 대수
        1.   RDB 용어
        2.   SQL
          1.   1. SQL
              2. SQL 기초 활용
              3. SQL 조인
              4. RQBE
              5. SAG
        3.   MySQL
      3.   DB 모델링/설계
      4.   회복,병행제어
      5.   데이터웨어하우스
      6.   데이터베이스(기타일반)
    5.   소프트웨어 공학
    6.   운영체제
    7.   정보보호/보안
    8.   IT 기타기술
  8.   공업일반(기계,재료등)
  9.   표준/계측/품질
  10.   기술경영

 
        최근수정     요약목록(시험중)     참고문헌