Constraint

    [Oracle] CONSTRAINT(제약조건)_FOREIGN KEY(외래키)_삭제옵션

    자식 테이블 생성시 외래키 제약조건 부여할 때 삭제옵션 지정가능 * 삭제옵션 : 부모테이블의 데이터 삭제시 그 데이터를 사용하고 있는 자식테이블의 값을 어떻게 처리할껀지 - ON DELETE RESTRICTED (기본값) : 삭제제한옵션으로, 자식데이터로 쓰이는 부모테이터는 삭제 아예 안되게끔 - ON DELETE SET NULL : 부모데이터 삭제시 해당 데이터를 쓰고 있는 자식데이터의 값을 NULL로 변경 - ON DELETE CASCADE : 부모데이터 삭제시 해당 데이터를 쓰고 있는 자식데이터도 같이 삭제시킴 SET NULL 옵션 CREATE TABLE MEM( MEM_NO NUMBER PRIMARY KEY, MEM_ID VARCHAR2(20) NOT NULL UNIQUE, MEM_PWD VARC..

    [Oracle] CONSTRAINT(제약조건)_FOREIGN KEY(외래키)

    회원등급에 대한 데이터를 따로 보관하는 테이블 CREATE TABLE MEM_GRADE( GRADE_CODE NUMBER PRIMARY KEY, GRADE_NAME VARCHAR2(30) NOT NULL ); INSERT INTO MEM_GRADE VALUES(10, '일반회원'); INSERT INTO MEM_GRADE VALUES(20, '우수회원'); INSERT INTO MEM_GRADE VALUES(30, '특별회원'); CREATE TABLE MEM( MEM_NO NUMBER PRIMARY KEY, MEM_ID VARCHAR2(20) NOT NULL UNIQUE, MEM_PWD VARCHAR2(20) NOT NULL, MEM_NAME VARCHAR2(20) NOT NULL, GENDER CHA..

    [Oracle] CONSTRAINT(제약조건)_PRIMARY KEY

    * PRIMARY KEY(기본키) 제약조건 => PK 테이블에서 각 행들을 식별하기 위해 사용될 컬럼에 부여하는 제약조건 (식별자의 역할) EX) 회원번호, 학번, 사원번호, 부서코드, 직급코드, 주문번호, 예약번호, 운송장번호 PRIMARY KEY 제약조건을 부여하면 그 컬럼에 자동으로 NOT NULL + UNIQUE 제약조건 가진다. * 유의사항 : 한 테이블당 오로지 !!! 한개만 가능 CREATE TABLE MEM_PRI( MEM_NO NUMBER CONSTRAINT MEMNO_PK PRIMARY KEY, MEM_ID VARCHAR2(20) NOT NULL UNIQUE, MEM_PWD VARCHAR2(20) NOT NULL, MEM_NAME VARCHAR2(20) NOT NULL, GENDER C..

    [Oracle] CONSTRAINT(제약조건)_CHECK

    * CHECK(조건식) 제약조건 해당 컬럼에 들어올 수 있는 값에 대한 조건을 제시해둘 수 있음 해당 조건에 만족하는 데이터값만 담길 수 있음 CREATE TABLE MEM_CHECK( MEM_NO NUMBER NOT NULL, MEM_ID VARCHAR2(20) NOT NULL UNIQUE, MEM_PWD VARCHAR2(20) NOT NULL, MEM_NAME VARCHAR2(20) NOT NULL, GENDER CHAR(3) CHECK (GENDER IN('남', '여')), PHONE VARCHAR2(13), EMAIL VARCHAR2(50) --CHECK(GENDER IN ('남', '여')) -- 테이블 레벨 방식 ); INSERT INTO MEM_CHECK VALUES(1, 'user01',..

    [Oracle] CONSTRAINT(제약조건)_제약조건명 부여

    * 제약조건 부여시 제약조건명까지 지어주는 방법 > 컬럼 레벨 방식 CREATE TABLE 테이블명( 컬럼명 자료형 [CONSTRAINT 제약조건명]제약조건 컬럼명 자료형 ); > 테이블 레벨 방식 CREATE TABLE 테이블명{ 컬럼명 자료형, 컬럼명 자료형, ... [CONSTRAINT 제약조건명]제약조건(컬럼명) ); CREATE TABLE MEM_UNIQUE( MEM_NO NUMBER CONSTRAINT MEMNO_NN NOT NULL, -- 컬럼 레벨 방식 MEM_ID VARCHAR2(20) CONSTRAINT MEMID_NN NOT NULL, MEM_PWD VARCHAR2(20) CONSTRAINT MEMPWD_NN NOT NULL, MEM_NAME VARCHAR2(20) CONSTRAINT..

    [Oracle] CONSTRAINT(제약조건)_UNIQUE

    * UNIQUE 제약조건 해당 컬럼에 중복된 값이 들어가서는 안 될 경우 컬럼값에 중복값을 제한하는 제약 조건 삽입 / 수정시 기존에 있는 데이터값 중 중복값이 있을경우 오류 발생 !! 컬럼 레벨 방식 CREATE TABLE MEM_UNIQUE( -- 컬럼레벨방식 MEM_NO NUMBER NOT NULL, MEM_ID VARCHAR2(20) NOT NULL UNIQUE, MEM_PWD VARCHAR2(20) NOT NULL, MEM_NAME VARCHAR2(20) NOT NULL, GENDER CHAR(3), PHONE VARCHAR2(13), EMAIL VARCHAR2(50) ); 테이블 레벨 방식 CREATE TABLE MEM_UNIQUE( MEM_NO NUMBER NOT NULL, MEM_ID VA..

    [Oracle] CONSTRAINT(제약조건)_NOTNULL

    - 원하는 데이터값 (유효한 형식의 값) 만 유지하기 위해서 특정 컬럼에 설정하는 제약조건 - 데이터 무결성 보장을 목적으로 한다! * 종류 : NOT NULL, UNIQUE, CHECK, PRIMARY KEY, FOREIGN KEY * NOT NULL 제약조건 해당 컬럼에 반드시 값이 존재해야만 할 경우 (즉, 해당 컬럼에 절대 NULL이 들어와서는 안되는 경우) 삽입 / 수정시 NULL 값을 허용하지 않도록 제한 제약 조건을 부여하는 방식은 크게 2가지가 있음 (컬럼레벨방식 / 테이블레벨방식) * NOT NULL 제약조건은 오로지 컬럼레벨방식 밖에 안됨 ** -- 컬럼레벨방식 : 컬럼명 자료형 제약조건 CREATE TABLE MEM_NOTNULL( MEM_NO N..