ALTER | 작성법 |
---|---|
컬럼 추가 | ALTER TABLE 테이블명 ADD(컬럼명 데이터타입 [DEFAULT] ); |
데이터 타입 수정 (DEFAULT 값 수정 가능) | ALTER TABLE 테이블명 MODIFY(컬럼명 데이터타입 [DEFAULT]); |
제약 조건 추가 (제약조건명 지정해야함) | PRIMARY KEY, FOREIGN KEY, UNIQUE는 ADD ALTER TABLE 테이블명 ADD CONSTRAINT 제약조건명 PRIMARY KEY | FOREIGN KEY | UNIQUE(컬럼명); NOT NULL, CHECK 는 MODIFY ALTER TABLE 테이블명 MODIFY 컬럼명 CONSTRAINT 제약조건명 NOT NULL | CHECK; |
테이블 이름 변경 | ALTER TABLE 테이블명 RENAME TO 테이블명(변경후); RENAME 테이블명 TO 테이블명(변경후); |
컬럼명 수정 | ALTER TABLE 테이블명 RENAME COLUMN 컬럼명(변경전) TO 컬럼명(변경후); |
제약 조건 이름 변경 | ALTER TABLE 테이블명 RENAME CONSTRAINT 제약조건명(변경전) TO 제약조건명(변경후); |
컬럼 삭제 | 참조하고있는 컬럼이 있다면 컬럼 삭제 불가능 ALTER TABLE 테이블명 DROP COLUMN 컬럼명; 삭제시 연결되어 있는 제약 조건도 모두 없애기 ALTER TABLE 테이블명 DROP COLUMN 컬럼명 CASCADE CONSTRAINT; |
제약 조건 삭제 | ALTER TABLE 테이블명 DROP CONSTRAINT 제약조건명 ; |
CREATE TABLE TEST(
USER_NO NUMBER PRIMARY KEY,
USER_ID VARCHAR2(20),
USER_PWD CHAR(20)
);
ALTER TABLE TEST ADD(USER_NAME VARCHAR2(20));
ALTER TABLE TEST ADD(USER_AGE NUMBER DEFAULT 0);
ALTER TABLE TEST
MODIFY(USER_PWD VARCHAR2(20))
MODIFY(USER_AGE DEFAULT 99);
ALTER TABLE TEST ADD CONSTRAINT TEST_ID_UNQ UNIQUE(USER_ID);
ALTER TABLE TEST MODIFY USER_PWD CONSTRAINT TEST_PWD_NN NOT NULL;
ALTER TABLE TEST RENAME COLUMN USER_PWD TO USER_PASSWORD;
ALTER TABLE TEST RENAME CONSTRAINT SYS_C007222 TO TEST_NO_PK;
-- 제약조건명 확인
SELECT CONSTRAINT_NAME, CONSTRAINT_TYPE,TABLE_NAME FROM USER_CONSTRAINTS
WHERE TABLE_NAME='TEST';
-- 제약조건 삭제
ALTER TABLE TEST DROP CONSTRAINT TEST_ID_UNQ ;
DROP | 작성법 |
---|---|
테이블 삭제 | DROP TABLE 테이블명; |
테이블 삭제+제약조건 삭제 | DROP TABLE 테이블명 CASCADE CONSTRAINT; |