제약조건을 먼저 보기전에


데이터베이스는 '기본키'라는 개념이 있다.


예를들어 학생부 리스트가 쭉 있을 때 다른 항목과 중복이 없어 항상 구분이 되는 항목이 있을것이다.


학번과 같은 항목 말이다.


기본키는 중복이 없고 무조건 값이 들어가야 하고 데이터 베이스 상 한개의 항목만 지정할 수 있다.


영어로는 Primary Key라고 한다.




-- 제약 조건은 추가 삭제만 가능하다.
-- 기본키(primary key) - 중복X, NOT NULL
-- 1) 테이블 생성 시 1(오라클 방식)
CREATE TABLE pkTestName (
    firstCol NCHAR(8) NOT NULL,
    secondCol NVARCHAR2(4),
    CONSTRAINT pk_code PRIMARY KEY(secondCol)
);
-- CONSTRAINT를 통해서 기본키가 무엇인지 지정
desc pkTestName;

-- 2) 테이블 생성 시 2(다른 DB 프로그램 방식)
CREATE TABLE pkTest(
    firstCol NUMBER(3) PRIMARY KEY,
    secondCol NVARCHAR2(4)
);

-- 3) 완성된 테이블에 PK를 지정할 경우
-- ALTER TABLE [table] ADD CONSTRAINT [이름] [제약조건] (필드)
ALTER TABLE employees ADD CONSTRAINT pk_emp_no PRIMARY KEY (emp_no);


-- 기본키는 테이블당 1개만 존재
-- 하지만 여러개의 컬럼을 합쳐서 지정하는것을 복합키라고 함, 추천하는 방식은 아님
-- 주민번호의 앞자리 + 뒷자리처럼
-- 최대 16개의 컬럼에 가능
CREATE TABLE pkTwoTest(
    firstCol NUMBER(5),
    secondCol NUMBER(5),
    thirdCol DATE,
    CONSTRAINT pk_two PRIMARY KEY(firstCol, secondCol)
);

-- NOT NULL을 완성된 테이블에 추가
-- NOT NULL은 key와 다르게 속성으로 취급
-- 기존 테이블 속성 바꾸는 방법과 동일
ALTER TABLE pkTwoTest MODIFY thirdCol VARCHAR2(4) NOT NULL;
DESC pkTwoTest;


-- 제약조건 확인
SELECT constraint_name, table_name FROM USER_CONSTRAINTS;
-- 위와 같이 특수한 정보가 저장되는 테이블을 오라클에서 자동적으로 관리함.

-- 제약조건 삭제
ALTER TABLE pkTestName DROP CONSTRAINT SYS_C006997;

-- Primary Key는 매우 중요한 키로 중복되는 항목을 차단하기 때문에 왠만하면 사용하는것을 추천.











27줄의 복합키 생성 부분을 실행하고 찍은 스크린샷인데


키가 잘 지정됫는지 확인할 때 좌측의 접속 리스트의 상단에 새로고침 버튼을 누르고


접속한 계정, WEB_USER의 테이블 리스트를 펼치고 만든 테이블을 누르면 화면에 보이게 된다.


그 중 모델에서 확인할 수 있다.









+ Recent posts