인덱스를 생성할 때의 기준 

 

    - 사용자에 의해 사용되는 어플리케이션과 SQL과 Query에 인덱스를 생성


    - where절에서 빈번하게 사용되는 컬럼에 인덱스를 생성


    - 자주 join 되는 테이블 컬럼에 인덱스를 생성


    - whwere절에서 함수와, 연산으로 사용되는 컬럼에는 인덱스를 만들지 않는다.


    - 외래키와 whwere절에서 빈번하게 사용되는 컬럼에는 nonunique 인덱스를 생성


    - 테이블의 크기가 적은 것은 인덱스를 만들지 않는다.


    - 인덱스가 많은 경우 오버헤드를 발생시킬 수 있다.


    - Select 절의 컬럼을 인덱스 컬럼으로 만들 수 있다(성능 Up)


    - 칼럼의 분포도가 (10 ~15 %)이하인 경우 적용. 단 분포도가 범위 이상이더라도 부분범위 처리를 목적으로 하는경          우 인덱스 적용 (같은 값을 가지는 row가 적은 비율을 가지는 칼럼)

DML을 이용하여 자료를 다룰 때는 항상 NULL을 염두에 두고 다루어야 한다.
NUMBER 형 자료를 NULL과 연산하면 결과는 항상 NULL이 된다.
NULL이 포함될 유려가 있는 칼럼을 이용할 때는 항상 NVL 함수를 이용하여 값을 치환시켜 사용하는 습관을 들여야 한다.

일반 적으로 같은 지 비교 : WHERE A = '1'
           다른 지 비교 : WHERE a <> '1'

NULL 비교 : WHERE A IS NULL
            WHERE A IS NOT NULL

            SELECT EMP NAME FROM TEMP WHERE NVL(HOBBY, ’ 등산’ ) = ’등산’ ;

ALIAS
    동일한 컬럼 이 두개 테이블 이상에 존재할 때 어떤 테이블의 컬럼 인지를 명시하지 않으 에러가 나게 된다. 그래서 ALIAS를 사용함

UNION : 합집합을 구해준다(중복 자료 배제)
UNION ALL : 합집합을 구해준다(중복 자료 포함)
MINUS : 차집합을 구해준다.
INTERSECT : 교집합을 구해준다.

UNION ALL 빼고 SORT 가 일어난다.
(mode에 따라 다름)

CORRELATED 서브쿼리 
    CORRELATED 서브쿼리는 SUB QUERY 가 MAIN QUERY 의 값을 이용하고, 그 렇게 구해진 SUB QUERY의 값을 다시 MAIN QUERY가 다시 이용하게 된다 

    SELECT EMP ID,EMP_NAME FROM TEMP A WHERE SALARY > (SELECT AVG(SALARY) FROM TEMP B WHERE B.LEV = A.LEV)

ROWNUM
    ORDER Bγ 후에 ROWNUM이 붙는 것이 아니고, 조건 절 을 만족시킨 행들에 ROWNUM이 붙은 후 ORDER BY가 이루어진다.

ROWID
    ROWID는 DATABASE내의 모든 ROW가 가지는 유일한 식별자이다.

NOT IN
    NOTIN 연산자에 NULL이 포함되면 어떠한 경우 일지라도 한건도 DATA를 검색하지 못 한다. 
    WHERE HOBBY <> NULL AND HOBBY <> ’ 낚시 ’ ; 

HIERACHICAL SELECT 
    자료의 구조가 계층적으로 이루어진 경우 상위자료에서부터 하위자료로의 자료전개 및 하위자료에서 상위자료로의 역 전개를 위하여 사용되는 SELECT 형식이다
    SELECT LEVEL, DEPT CODE, DEPT N.따‘E FROM TDEPT CONNECT BY PRIOR DEPT CODE = PARENT DEPT START WITH DEPT CODE = ’ 000000 ’; 

.\mvnw spring-boot:run 메이븐 프로젝트 실행 명령어


./gradlew bootRun 그래들 프로젝트 실행 명령어

+ Recent posts