-- 테이블 명 변경
ALTER TABLE schema.table_name RENAME TO new_table_name;
-- 테이블 로그 관련
ALTER TABLE schema.table_name LOGGING;
ALTER TABLE schema.table_name NOLOGGING;
-- 컬럼 추가
ALTER TABLE schema.table_name ADD (column_properties);
-- 컬럼 속성 변경
ALTER TABLE schema.table_name MODIFY (column_properties);
-- 컬럼 삭제
ALTER TABLE schema.table_name DROP COLUMN column_name;
-- 컬럼명 변경
ALTER TABLE schema.table_name RENAME COLUMN old_name TO new_name;
-- 제약 조건명 변경
ALTER TABLE schema.table_name RENAME CONSTRAINT old_name TO new_name;
-- 제약 조건 삭제
ALTER TABLE schema.table_name DROP CONSTRAINT constraint_name;
-- 테이블의 테이블스페이스 변경
ALTER TABLE schema.table_name MOVE TABLESPACE tablespace_name;
-- 테이블의 통계정보 업데이트
ANALYZE TABLE table_name COMPUTE STATISTICS;
ANALYZE TABLE table_name ESTIMATE STATISTICS SAMPLE 30 PERCENT;
ANALYZE TABLE table_name ESTIMATE STATISTICS SAMPLE 1000 ROWS;
-- 테이블의 통계 락 해제
EXECUTE DBMS_STATS.UNLOCK_SCHEMA_STATS('schema_name');
-- 스키마 소유의 오브젝트에 대한 통계 생성
EXECUTE DBMS_UTILITY.ANALYZE_SCHEMA('schema_name', 'COMPUTE');
-- PK 추가
CREATE UNIQUE INDEX schema.index_name ON schema.table_name (columns);
ALTER TABLE schema.table_name ADD CONSTRAINT constraint_name PRIMARY KEY (columns);
-- 인덱스명 변경
ALTER INDEX schema.old_index_name RENAME TO new_index_name;
-- 인덱스의 테이블스페이스 변경
ALTER INDEX schema.index_name REBUILD TABLESPACE tablespace_name;
-- 테이블스페이스의 데이터 파일 이동 및 이름변경
ALTER TABLESPACE tablespace_name OFFLINE NORMAL;
OS COPY: data file
ALTER TABLESPACE tablepsace_name RENAME DATAFILE 'diskb:data_file.dat' TO 'diska:data_file.dat';
ALTER TABLESPACE tablespace_name ONLINE;
-- SYNONYM 생성
CREATE SYNONYM schema.synonym_name FOR schema.object_name;
CREATE SYNONYM schema.synonym_name FOR schema.object_name@db_link_name;
-- COMMENT 생성
COMMENT ON TABLE schema.table_name IS 'comment_text';
COMMENT ON COLUMN schema.table_name.column_name IS 'comment_text';
-- DB LINK 생성
CREATE /* PUBLIC */ DATABASE LINK db_link_name
CONNECT TO user_id IDENTIFIED BY password USING 'tns_name';
-- SUBQUERY FACTORING
WITH
dept_costs
AS (
SELECT department_name, SUM(salary) dept_total
FROM employees e, departments d
WHERE e.department_id = d.department_id
GROUP BY department_name
),
avg_cost
AS (
SELECT SUM(dept_total)/COUNT(*) avg
FROM dept_costs
)
SELECT *
FROM dept_costs
WHERE dept_total > (SELECT avg FROM avg_cost)
ORDER BY department_name;
'프로그래밍 > ORACLE' 카테고리의 다른 글
[ORACLE] decode (0) | 2011.07.22 |
---|---|
[ORACLE] sign (0) | 2011.07.22 |
[ORACLE] translate(특정문자 제거) (0) | 2011.07.22 |
[Oracle] commit 후 데이터 복구 (2) | 2011.03.29 |
ORACLE 소수점이하 삭제. (0) | 2010.07.07 |