검색결과 리스트
글
[db] Alter Table DDL
COLUMN
-------------------------------------------------------------------------------------------
삭제
ALTER TABLE [table_name] DROP COLUMN column_name;
추가
ALTER TABLE [table_name] ADD (column_name data_type(n));
수정
ALTER TABLE [table_name] MODIFY (column_name data_type( ));
DEFAULT VALUE, NOT NULL조건
ALTER TABLE [table_name] MODIFY (column_name column_type DEFAULT 'value' NOT NULL);
>> 이렇게 해주면, 컬럼이 생성되며 default 값은 'value'가 되고, NOT NULL 조건이 형성되게 된다.
이름 바꾸기
ALTER TABLE [table_name] RENAME COLUMN old_column_name TO new_column_name;
--------------------------------------------------------------------------------------------
TABLE
--------------------------------------------------------------------------------------------
테이블명 바꾸기
ALTER TABLE [table_name] RENAME TO [new_table_name];
테이블 통계 정보 생성 하기
ANALYZE TABLE [table_name] COMPUTE STATISTICS;
새로운 정보를 수집하기 전에 기존 정보를 삭제 할때
ANALYZE TABLE [table_name] DELETE STATISTICS;
특정 컬럼에 대한 DATA의 분포
ANALYZE TABLE [table_name] COMPUTE STATISTICS FOR ALL INDEXED COLUMNS;
9iR2경우 테이블을 삭제하고 다시 생성하면,
히스토그램이 또는 기존에 가지고 있던 통계정보들이 날라가는데,
이후 통계 작업을 생성하면 히스토그램이 no에서 yes로 바뀌어져 있는다.
테이블 통계 정보 생성하기 다른 방법
BEGIN
DBMS_STATS.GATHER_TABLE_STATS('shema_name', 'table_name', CASCADE => TRUE);
END;
>> 해당 테이블에 의존된 오브젝트 들도 통계치 데이터를 생성한다. (좀더 자세히 알아봐야겠다.)
>> 700만건, 인덱스 2, PK, 통계치 만드니 1시간 걸렸다. 원래 이렇게 느린가!!!
※테이블에 통계정보를 생성하면, histogram 이 No에서 Yes로 바뀐다.
파티션 추가
ALTER TABLE [table_name] ADD PARTITION [partition_name]
VALUES LESS THAN ('high_value') TABLESPACE [tablespace_name];
--------------------------------------------------------------------------------------------
CONSTRAINT PK
--------------------------------------------------------------------------------------------
PK추가
ALTER TABLE [table_name] ADD CONSTRAINT [index_name]
PRIMARY KEY ( column_name )
USING INDEX
TABLESPACE tablespace_name;
PK해제
ALTER TABLE table_name DROP PRIMARY KEY;
이름 바꾸기 (CONSTRAINT RENAME)
ALTER TABLE [table_name] RENAME CONSTRAINT [before constraint name] TO [after constraint name];
--------------------------------------------------------------------------------------------
INDEX
--------------------------------------------------------------------------------------------
이름 바꾸기
ALTER INDEX index_name RENAME TO new_index_name;
인덱스 삭제
DROP INDEX index_name;
인덱스 생성
CREATE INDEX index_name ON table_name
(column1, column2....)
no/logging
TABLESPACE tablespace_name
no/parallel;
--------------------------------------------------------------------------------------------
STORAGE
--------------------------------------------------------------------------------------------
MAXEXTENT 사이즈 조절
ALTER TABLE table_name STORAGE (MAXEXTENTS number);
해당 TABLE_NAME에 MAXEXTENTS를 NUMBER만큼 늘린다.
--------------------------------------------------------------------------------------------
TABLESPACE
--------------------------------------------------------------------------------------------
테이블 스페이스 변경
ALTER TABLE table_name MOVE TABLESPACE tablespace_name;
ALTER INDEX index_name REBUILD TABLESPACE tablespace_name;
>> 기존 테이블 스페이스를 변경 시켜 준다.
>> REBUILD : 전에는 REBUILD 가 없이, DROP 후 CREATE 했어야 했다.
인덱스는 MOVE가 아닌 REBUILD로 테이블 스페이스를 이동한다.
'database' 카테고리의 다른 글
[db] 정렬, 오름차순, 내림차순 (0) | 2012.09.28 |
---|---|
[oracle] 계정 생성, 추가, 권한, 삭제 (0) | 2012.09.28 |
[oracle] 오라클 관리자 비번 설정, 잃어버렸을 때 (0) | 2012.09.28 |
[db] 테이블 총 갯수 카운트시 성능 저하 (0) | 2012.09.28 |
[db] 삽입 insert, 삭제 delete, 선택 select 쿼리 (0) | 2012.09.28 |