<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 |