--데이터 정의어: DDL
--테이블 생성 및 구조, 제약조건 등을 설정
CREATE TABLE MEMBER3(
ID VARCHAR2(30),
PW VARCHAR(200),
AGE NUMBER(3),
PHONE VARCHAR2(15),
GENDER VARCHAR2(1),
REGDATE DATE,
REGDATE1 TIMESTAMP,
-- 여기서 제약조건을 이제 붙인다잉
CONSTRAINT PK_MEMBER3_ID PRIMARY KEY(ID),
CONSTRAINT CK_MEMBER3_GENDER CHECK ( GENDER IN('M' , 'F') )
);
CLOB 텍스트 대량
VARCHAR2()로 애매한 영역
CONSTRAINT PK_MEMBER3_ID PRIMARY KEY(ID),
여기서 PK_MEMBER3_ID는 기본 키 이름임. 안붙이면 자동으로 만들어진다.
기본 키 이름이 붙었다.
제약 조건 AGE가 붙었다.
ALTER TABLE 테이블명 ADD 컬럼명 컬럼타입
ALTER TABLE MEMBER3 ADD ADDR VARCHAR2(100);
ALTER TABLE STUDENT1 ADD SCOREKOR NUMBER(3) DEFAULT 80;
ALTER TABLE MEMBER3 MODIFY ADDR VARCHAR2(120);
DROP TABLE BOARD3 CASCADE CONSTRAINTS;
ALTER TABLE MEMBER3 DROP COLUMN ADDR;
기존에 기본키를 만들었기 때문에 지금은 동작 안됨.
좋은 설계는 ALTER를 쓰지 않는 것임.
처음부터 변경사항 없는 설계가 좋은 거임
ALTER TABLE 테이블명 ADD CONSTRAINT 명칭 PRIMARY KEY (명칭 생략 가능)
ALTER TABLE MEMBER3 ADD CONSTRAINT PK_MEMBER3_ID PRIMARY KEY(ID);
널이 아님은 제약조건이 아닌 타입으로 봐야 함. (하나의 유형으로 봐야 함.)
열에 잡혀 있음.
ALTER TABLE MEMBER3 MODIFY GENDER NOT NULL;
널이 아님이 잡혀 있는 것을 확인할 수 있음.
ALTER TABLE MEMBER3 ADD CONSTRAINT UQ_MEMBER3_PHONE UNIQUE(PHONE);
ALTER TABLE 테이블명 ADD CONSTRAINT 제약조건 이름 CHECK (컬럼명 IN ('체크', '체크'))
ALTER TABLE MEMBER3 DROP CONSTRAINT UQ_MEMBER3_PHONE;
사라진 걸 확인할 수 있음.
CONSTRAINT FK_BOARD3_WRITER FOREIGN KEY(WRITER) REFERENCES MEMBER3(ID)
ALTER TABLE EMP01 ADD CONSTRAINT FK_EMP01_DEPTNO FOREIGN KEY(DEPTNO) REFERENCES DEPT01(DEPTNO)