CREATE 연습
DROP TABLE TESTTABLE;
DROP TABLE TEST2TABLE;
CREATE TABLE TEST2TABLE (
TEST2ID CHAR(5) NOT NULL,
TEST2DATE DATE,
CONSTRAINT TEST2TABLE_PK PRIMARY KEY (TEST2ID)
);
CREATE TABLE TESTTABLE (
TESTID CHAR(5) NOT NULL,
TESTNAME VARCHAR(20) NOT NULL,
TEST2ID CHAR(5) NOT NULL,
TESTDEFAULT CHAR(10) DEFAULT '0000000000' NOT NULL,
TESTOTHER NUMBER(5,2),
CONSTRAINT TESTTABLE_PK PRIMARY KEY (TESTID),
CONSTRAINT TESTTABLE_UK UNIQUE (TESTNAME),
CONSTRAINT TESTTABLE_FK FOREIGN KEY (TEST2ID)
REFERENCES TEST2TABLE(TEST2ID) ON DELETE CASCADE,
/*CONSTRAINT OTHERCHECK 안 쓰면 익명으로 구현*/ CHECK (TESTOTHER > 5)
);
ALTER 연습
ALTER TABLE TESTTABLE
ADD (TESTADD CHAR(5), TESTADD2 CHAR(5));
--ALTER TABLE TESTTABLE
--DROP COLUMN TESTADD;
ALTER TABLE TESTTABLE
DROP (TESTADD, TESTADD2);
ALTER TABLE TESTTABLE
MODIFY (TESTOTHER NUMBER(5,2) DEFAULT 100.55,
TESTDEFAULT CHAR(5) DEFAULT '12345');
ALTER TABLE TESTTABLE
RENAME COLUMN TESTOTHER TO TESTNUMBER;
ALTER TABLE TESTTABLE
RENAME COLUMN TESTNUMBER TO TESTOTHER;
ALTER TABLE TESTTABLE
ADD CONSTRAINT OTHERCONST CHECK (TESTOTHER > 50.55);
ALTER TABLE TESTTABLE
DROP CONSTRAINT OTHERCONST;
RENAME TESTTABLE TO TESTTABLE3;
RENAME TESTTABLE3 TO TESTTABLE;
--DROP TABLE TESTTABLE
TRUNCATE TABLE TESTTABLE;
메모
CREATE에서 제약 조건 설정 시 조건의 이름을 명시해도 되고 안 해도 된다.
명시 한다면 [CONSTRAINT] [CONS_NAME] [PRIMARY KEY / FOREIGN KEY, CHECK 등]과 같은 식으로 명시하면 된다.
오라클에서는 ON UPDATE를 지원하지 않는다. 트리거라는 것을 사용하여 참조 무결성을 지켜야 하는데, 이건 따로 알아볼 것.
DEFAULT 제약조건은 CONSTRAINT로 접근하는 것이 아닌 칼럼에 접근해서 생성 및 수정 가능. 변경 및 삭제 시에는 MODIFY, 생성 시에는 그냥 NOT NULL 앞에.
ALTER에 대한 모든 것. https://jujudywithsw.tistory.com/20
ORACLE에서는 ALTER SCHEMA는 작동하지 않으므로 MODIFY를 사용할 것.
'3-1 > 데이터베이스 (실습)' 카테고리의 다른 글
[데이터베이스 실습] 10. TCL, DCL (0) | 2023.06.09 |
---|---|
[데이터베이스 실습] 9. 그룹 함수, 윈도우 함수 (0) | 2023.06.09 |
[데이터베이스 실습] 7. 집합 연산자와 계층형 질의 (0) | 2023.06.08 |
[데이터베이스 실습] 3. 함수 (0) | 2023.06.08 |
[데이터베이스 실습] 1. Oracle Database 및 Oracle SQL Developer 설치 (0) | 2023.03.08 |