목록SQL (36)
으나님의 잡다한 개발상식
- SELECT 문을 사용할 때 ORDER BY를 통해 오름차순(ASC) 혹은 내림차순(DESC)로 정렬할 수 있다. - ORDER BY가 정렬을 하는 시점은 모든 실행이 끝난 후 데이터를 출력하기 바로 전이다. - ORDER BY는 정렬을 하기 때문에 데이터베이스 메모리를 많이 사용한다. 즉 대략의 데이터를 정렬하게 되면 정렬로 인한 성능 저하가 발생한다. - ORACLE 데이터베이스는 정렬을 위해서 메모리 내부에 할당된 SORT_AREA_SIZE를 사용한다. 만약 SORT_ARIA_SIZE가 너무 작으면 성능 저하가 발생한다. - 정렬을 회피하기 위해 인덱스(INDEX)를 생성하여 사용할 수 있다.
DELETE FROM 테이블명; TRUNCATE TABLE 테이블명; - 테이블의 모든 데이터 삭제 - 데이터가 삭제되어도 테이블 용량은 감소하지 않음 - 테이블의 모든 데이터를 삭제 - 데이터가 삭제되면 테이블의 용량도 초기화됨 ORCLE DB는 저장공간을 할당할 때 EXTENT 단위로 할당하는데, 테이블에 데이터가 입력되면 EXTENT에 저장하게 된다. 만약 EXTENT의 크기가 MAX_EXTENTS를 넘기게 되면 용량 초과 오류가 발생하게 된다. DELETE문은 데이터를 삭제하여도 테이블 용량이 초기화되지 않으며 삭제 여부만 표시한다.
데이터베이스에 데이터를 입력하면 로그파일에 그 정보를 기록한다. CHECK POINT라는 이벤트가 발생하면 로그파일의 데이터를 데이터 파일에 저장한다. NOLOGGING 옵션은 로그파일의 기록을 최소화시켜서 데이터 입력(INSERT) 시 성능을 향상시키는 방법이다. NOLOGGING 옵션은 BUFFER CACHE라는 메모리 영역을 생략하고 기록한다. ALTER TABLE 테이블명 NOLOGGING;
1. 테이블명 변경 ALTER TABLE 원래 테이블명 RENAME TO 바꿀 테이블명; EX) ALTER TABLE EMP RENAME TO NEW_EMP; 2. 컬럼 추가 ALTER TABLE 테이블명 ADD(컬럼명 타입 ...); EX) ALTER TABLE EMP ADD (AGE NUMBER(2) DEFAULT 1); 3. 컬럼 변경 ALTER TABLE 테이블명 MODIFY (바꿀 컬럼명 타입 ...); EX) ALTER TABLE EMP MODIFY (ENAME VARCHAR2(40) NOT NULL); 4. 컬럼 삭제 ALTER TABLE 테이블명 DROP COLUMN 컬럼명; EX) ALTER TABLE EMP DROP COLUMN AGE; 5. 컬럼명 변경 ALTER TABLE 테이블명 ..

1. 제약조건 사용 1) 기본키 지정 CONSTRAINT 기본키 이름 PRIMARY KEY (컬럼명) *기본키 2개 지정 방법 : CONSTRAINT 기본키 이름 PRIMARY KEY(컬럼명, 컬럼명) 2) 외래키 지정 CONSTRAINT 외래키명 FOREIGN KEY(외래키를 지정할 테이블의 컬럼명) REFERENCE 참조할 테이블명(참조할 컬럼명) 3) NUMBER(10,2) : 소수점 둘째 자리까지 저장 2. CASCADE - 참조 관계(기본키와 외래키 관계)가 있을 경우 참조되는 데이터도 자동으로 삭제 가능 - 자신이 참조하고 있는 테이블의 데이터가 삭제되면 자동으로 자신의 데이터도 삭제 - CASCADE 사용시 참조 무결성을 준수할 수 있음 *참조무결성 마스터 테이블(DEPT)에는 해당 부서번호..