Oracle 테이블 설정(생성, 수정, 삭제) 관련 쿼리 예제
페이지 정보
본문
-- 테이블 생성
CREATE TABLE 테이블명 (
컬럼1 NUMBER(10) NOT NULL,
컬럼2 VARCHAR2(256) NOT NULL,
컬럼3 NUMBER(4) NOT NULL,
컬럼4 VARCHAR2(12),
컬럼5 VARCHAR2(256),
컬럼6 VARCHAR2(1) NOT NULL DEFAULT 'N',
컬럼7 NUMBER(10) NOT NULL DEFAULT 100,
컬럼8 DATE NOT NULL DEFAULT sysdate
); -- 테이블스페이스 지정 시 => )TABLESPACE TS_TEST_DATA;
-- 자동으로 COMMIT; 적용
-- UNIQUE INDEX 생성
CREATE UNIQUE INDEX 테이블명_pk ON 테이블명(컬럼명) TABLESPACE TS_TEST_IDX;
-- 자동으로 COMMIT; 적용
-- PK(primary key) 설정
ALTER TABLE 테이블명 ADD CONSTRAINT 테이블명_pk PRIMARY KEY(컬럼명);
COMMIT; -- DB에 실제 저장
https://www.happyjung.com/bbs/board.php?bo_table=lecture&wr_id=1619
-- INDEX 생성
CREATE INDEX idx_테이블명 ON 테이블명(컬럼명) TABLESPACE TS_TEST_IDX ;
COMMIT; -- DB에 실제 저장
-- 컬럼 추가
ALTER TABLE 테이블명 ADD (컬럼명 varchar2(1) default 0);
ALTER TABLE 테이블명 ADD (컬럼명 number(2) default 0 NOT NULL);
ALTER TABLE 테이블명 ADD (컬럼명 char2(9) NULL);
-- 자동으로 COMMIT; 적용됨
-- 컬럼 속성 수정 (컬럼 형식,크기 및 NULL여부 및 default값 등)
ALTER TABLE 테이블명 MODIFY 수정할컬럼명 변경후데이타형;
COMMIT; -- DB에 실제 저장
ALTER TABLE 테이블명 MODIFY (컬럼명 number(2) default '0');
ALTER TABLE 테이블명 MODIFY (컬럼명 varchar2(32) NOT NULL);
ALTER TABLE 테이블명 MODIFY (컬럼명 varchar2(2) default 'N' NOT NULL);
-- 데이터의 위치를 바꾼다. modify
ALTER TABLE 테이블명 MODIFY '칼럼이름' '데이터형' [after | first '기준칼럼'];
COMMIT; -- DB에 실제 저장
기준칼럼보다 앞이나 뒤에 오게 된다.
-- TABLE 제약조건 삭제
ALTER TABLE 테이블명 DROP CONSTRAINT 제약조건명
COMMIT; -- DB에 실제 저장
-- 컬럼 수정 - 9i 부터 가능합니다.
ALTER TABLE 테이블명 RENAME COLUMN 변경전컬럼명 TO 변경후컬럼명;
COMMIT; -- DB에 실제 저장
-- 컬럼 삭제 - 8i 부터 가능합니다.
ALTER TABLE 테이블명 DROP COLUMN 컬럼명;
COMMIT; -- DB에 실제 저장
-- 테이블명 변경
ALTER TABLE old테이블명 RENAME TO new테이블명;
COMMIT; -- DB에 실제 저장
-- 테이블 삭제 - 9i 이하 버젼
DROP TABLE 테이블명;
-- 자동으로 COMMIT; 적용
-- 테이블 삭제 - 10g 이상 버젼
-- 10g부터는 Drop시 휴지통으로 들어가 물리적으로는 남아있고 공간을 차지하기 때문에 purge옵션을 사용해야 완전히 지워짐.
DROP TABLE 테이블명 PURGE;
-- 휴지통 확인
SHOW recyclebin;
-- 휴지통 비우기
PURGE recyclebin;
-- 휴지통에 버려진 테이블 되살리기
FLASHBACK TABLE "BIN$04LhcpnoanfgMAAAAAANPw==$0" TO BEFORE DROP RENAME TO 테이블명;
-- 파티션테이블 중 특정 파티션테이블 Drop
ALTER TABLE part_tbl DROP PARTITION part_tbl_02;
-- 파티션테이블 중 특정 파티션테이블 Truncate
ALTER TABLE part_tbl TRUNCATE PARTITION part_tbl_02;
관련자료
http://kibani.blog.me/120118235325
http://zetswing.com/bbs/board.php?bo_table=ORACLE_TIP&wr_id=3
http://blog.daum.net/jmp1533/34
CREATE TABLE 테이블명 (
컬럼1 NUMBER(10) NOT NULL,
컬럼2 VARCHAR2(256) NOT NULL,
컬럼3 NUMBER(4) NOT NULL,
컬럼4 VARCHAR2(12),
컬럼5 VARCHAR2(256),
컬럼6 VARCHAR2(1) NOT NULL DEFAULT 'N',
컬럼7 NUMBER(10) NOT NULL DEFAULT 100,
컬럼8 DATE NOT NULL DEFAULT sysdate
); -- 테이블스페이스 지정 시 => )TABLESPACE TS_TEST_DATA;
-- 자동으로 COMMIT; 적용
-- UNIQUE INDEX 생성
CREATE UNIQUE INDEX 테이블명_pk ON 테이블명(컬럼명) TABLESPACE TS_TEST_IDX;
-- 자동으로 COMMIT; 적용
-- PK(primary key) 설정
ALTER TABLE 테이블명 ADD CONSTRAINT 테이블명_pk PRIMARY KEY(컬럼명);
COMMIT; -- DB에 실제 저장
https://www.happyjung.com/bbs/board.php?bo_table=lecture&wr_id=1619
-- INDEX 생성
CREATE INDEX idx_테이블명 ON 테이블명(컬럼명) TABLESPACE TS_TEST_IDX ;
COMMIT; -- DB에 실제 저장
-- 컬럼 추가
ALTER TABLE 테이블명 ADD (컬럼명 varchar2(1) default 0);
ALTER TABLE 테이블명 ADD (컬럼명 number(2) default 0 NOT NULL);
ALTER TABLE 테이블명 ADD (컬럼명 char2(9) NULL);
-- 자동으로 COMMIT; 적용됨
-- 컬럼 속성 수정 (컬럼 형식,크기 및 NULL여부 및 default값 등)
ALTER TABLE 테이블명 MODIFY 수정할컬럼명 변경후데이타형;
COMMIT; -- DB에 실제 저장
ALTER TABLE 테이블명 MODIFY (컬럼명 number(2) default '0');
ALTER TABLE 테이블명 MODIFY (컬럼명 varchar2(32) NOT NULL);
ALTER TABLE 테이블명 MODIFY (컬럼명 varchar2(2) default 'N' NOT NULL);
-- 데이터의 위치를 바꾼다. modify
ALTER TABLE 테이블명 MODIFY '칼럼이름' '데이터형' [after | first '기준칼럼'];
COMMIT; -- DB에 실제 저장
기준칼럼보다 앞이나 뒤에 오게 된다.
-- TABLE 제약조건 삭제
ALTER TABLE 테이블명 DROP CONSTRAINT 제약조건명
COMMIT; -- DB에 실제 저장
-- 컬럼 수정 - 9i 부터 가능합니다.
ALTER TABLE 테이블명 RENAME COLUMN 변경전컬럼명 TO 변경후컬럼명;
COMMIT; -- DB에 실제 저장
-- 컬럼 삭제 - 8i 부터 가능합니다.
ALTER TABLE 테이블명 DROP COLUMN 컬럼명;
COMMIT; -- DB에 실제 저장
-- 테이블명 변경
ALTER TABLE old테이블명 RENAME TO new테이블명;
COMMIT; -- DB에 실제 저장
-- 테이블 삭제 - 9i 이하 버젼
DROP TABLE 테이블명;
-- 자동으로 COMMIT; 적용
-- 테이블 삭제 - 10g 이상 버젼
-- 10g부터는 Drop시 휴지통으로 들어가 물리적으로는 남아있고 공간을 차지하기 때문에 purge옵션을 사용해야 완전히 지워짐.
DROP TABLE 테이블명 PURGE;
-- 휴지통 확인
SHOW recyclebin;
-- 휴지통 비우기
PURGE recyclebin;
-- 휴지통에 버려진 테이블 되살리기
FLASHBACK TABLE "BIN$04LhcpnoanfgMAAAAAANPw==$0" TO BEFORE DROP RENAME TO 테이블명;
-- 파티션테이블 중 특정 파티션테이블 Drop
ALTER TABLE part_tbl DROP PARTITION part_tbl_02;
-- 파티션테이블 중 특정 파티션테이블 Truncate
ALTER TABLE part_tbl TRUNCATE PARTITION part_tbl_02;
관련자료
http://kibani.blog.me/120118235325
http://zetswing.com/bbs/board.php?bo_table=ORACLE_TIP&wr_id=3
http://blog.daum.net/jmp1533/34
댓글목록
등록된 댓글이 없습니다.