<DDL>

CREATE TABLE , DROP TABLE,REANME

<DML>

INSERT , DELETE , UPDATE

<TRANSACTION>

: 하나의 논리적인 작업단위(COMMIT,ROLLBACK)

제약조건
constraint_type : C(check, not null은 필수) , U(unique) , R(reference) , p(primary = notnull + unique)
desc user_constraints;
SELECT * FROM user_constraints
where table_name ='EMPLOYEES';

 

CONSTRAINT EMP06_DEPTNO_FK REFERENCES DEPARTMENTS(DEPARTMENT_ID)-->DEPARTMENTS 테이블을 부모테이블로 참조 함

테이블 생성시 제약 조건

---회원가입 (tbl_member)
---회원번호 숫자 (PK)
---회원이름 문자 (NOT NULL)
---회원이메일 문자 NULL 허용 UNIQUE
---회원월급 수입 (500~1000)
---회원성별 (남자,여자)
---담당부서 (DEPARTMENTS 참조)
CREATE TABLE MEMBER(
MEMBER_NO NUMBER(4) CONSTRAINT MEMBER_NO_PK PRIMARY KEY,
MEMBER_NAME VARCHAR2(30) NOT NULL,
MEMBER_EMAIL VARCHAR2(30) UNIQUE,
MEMBER_MON_SAL NUMBER(10) CONSTRAINT MEMBER_SAL_CK CHECK(MEMBER_MON_SAL BETWEEN 500 AND 1000),--제약조건 500~ 1000 사이
MEMBER_GENDER VARCHAR2(2) CONSTRAINT MEMBER_GEN_CK CHECK (MEMBER_GENDER IN('M', 'F')),--- M 과 F 만됨
MEMBER_DEPARTMENT NUMBER(5) 
CONSTRAINT MEMBER_DEPART_KEY REFERENCES DEPARTMENTS(DEPARTMENT_ID)-->DEPARTMENTS 테이블을 부모테이블로 참조 함
);

 

---복합키(여러칼람의 조합으로 유일성을 보장)----

---고객정보(고객번호키) , 상품정보(상품번호키) , 주문(고객번호키+상품번호키 + 날짜+seq , 너무 복잡하면 추카키 만든다)(주문번호)

CREATE TABLE MEMBER01( 
NAME VARCHAR2(10),
ADDRESS VARCHAR2(30),
HPHONE VARCHAR2(16),
CONSTRAINT MEMBER01_COMBO_PK PRIMARY KEY(NAME, HPHONE) ---두개의 키 조합 하나만 중복 되도 가능
);

 

 

--기존테이블 제약조건 추가하기 

ALTER TABLE table_name 
ADD [CONSTRAINT constraint_name] 
constraint_type (column_name);

 

제약조건 제거

ALTER TABLE table_name 
DROP [CONSTRAINT constraint_name];

 

제약조건 비활성화

DISABLE CONSTRAINT : 제약 조건의 일시 비활성화

ENABLE CONSTRAINT : 비활성화된 제약 조건을 해제하여 다시 활성화

ALTER TABLE table_name 
DISABLE [CONSTRAINT constraint_name];

 

 

'DB' 카테고리의 다른 글

DB-트리거  (0) 2024.10.28
저장 프로시저  (0) 2024.10.28
인덱스(INDEX)  (0) 2024.10.25
Sequence(오라클)  (0) 2024.10.25
executeQuery와 executeUpdate()의 차이  (0) 2024.10.25

+ Recent posts