목록SQL (36)
으나님의 잡다한 개발상식
1) 제약조건이란? 열에 넣을 값에 대해 잘못된 값이 들어가지 않도록 제한하는 것 EX) NOT NULL, UNIQUE, PRIMARY KEY, FOREIGN KEY, CHECK 2) CHECK 제약조건 CHECK 제약조건은 특정한 제약조건을 추가하는 것이다. /*CREATE문*/ CREATE TABLE R (NAME CHAR(20), PRIMARY KEY (NAME), SALARY INTEGER CHECK SALARY
1) 의미 동일한 타입과 이름을 가진 컬럼을 모두 조인하는 것이다. 2) 기본구조 SELECT 컬럼1, 컬럼2 ... FROM 테이블1 NATURAL JOIN 테이블2 [NATURAL JOIN 테이블3] ... WHERE 검색조건; 3) 잘못된 예시 SELECT EMP.DEPTNO, EMPNO, ENAME, DNAME FROM EMP NATURAL JOIN DEPT; NATURAL JOIN에서 사용된 열은 식별자를 가질 수 없다. 즉, EMP.DEPTNO와 같이 OWNER명을 사용하면 에러가 난다.
1. 개념 및 특징 - 원하는 데이터를 빠르게 찾기 위해 탐색키를 가지는 테이블 - 원하는 데이터를 쉽게 찾을 수 있도록 돕는 책의 색인과 유사한 개념 - 테이블 기반으로 선택적으로 생성할 수 있다. - 테이블에 인덱스를 생성하지 않아도 되고 여러 개를 생성해도 된다. - insert, update, delete 등과 같은 DML 작업은 테이블과 인덱스를 함께 변경해야 해서 오히려 느려질 수 있다는 단점이 있따. 2. 사용 SELECT /*+ INDEX_DESC(A) */ FROM EMP A; '/*+ INDEX_DESC(A) */' 부분을 힌트라고 하는데, 이를 사용하여 EMP테이블에 생성된 인덱스를 내림차순으로 읽도록 지정한 것이다. 3. 생성 CREATE INDEX 인덱스명 ON 테이블명 (컬럼1 ..
1) 파티션 기능 - 대용량의 테이블을 여러 개의 데이터 파일에 분리해서 저장 -> CRUD 성능 향상 - 각각의 파티션 별로 독립적 관리 가능. EX) 파티션 별 백업, 복구 가능, 파티션 전용 인덱스 생성 가능 2) 파티션 종류 - RANGE PARTITION : 값의 범위를 기준으로 파티션 구분 - LIST PARTITION : 특정 값을 기준으로 분할 - HASH PARTITION : DBMS이 내부적으로 해시함수를 사용해서 분할 3) 파티션 인덱스 - GLOBAL INDEX : 여러 개의 파티션에서 하나의 인덱스 사용 - LOCAL INDEX : 해당 파티션 별로 각자 인덱스 사용 - PREFIXED INDEX : 파티션 키와 인덱스 키가 동일 - NON PREFIXED INDEX : 파티션 키..
1) 비율 관련 윈도우 함수 - CUME_DIST : 파티션 전체 건수에서 현재 행보다 작거나 같은 건수에 대한 누적 백분율을 조회. 누적 분포상에 위치를 0~1사이의 값으로 가진다. - PERCENT_RANK : 파티션에서 제일 먼저 나온 것을 0, 제일 늦게 나온 것을 1로 하여 값이 아닌 행의 순서별 백분율을 조회한다. - NTILE : 파티션별로 전체 건수를 ARGUMENT 값으로 N등분한 결과를 조회한다. - RATIO_TO_REPORT : 파티션 내에 전체 SUM(컬럼)에 대한 행 별 컬럼 값의 백분율을 소수점까지 조회한다. 2) PERCENT_RANK 3) NTILE 4) RATIO_TO_REPORT