제약조건을 먼저 보기전에
데이터베이스는 '기본키'라는 개념이 있다.
예를들어 학생부 리스트가 쭉 있을 때 다른 항목과 중복이 없어 항상 구분이 되는 항목이 있을것이다.
학번과 같은 항목 말이다.
기본키는 중복이 없고 무조건 값이 들어가야 하고 데이터 베이스 상 한개의 항목만 지정할 수 있다.
영어로는 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의 테이블 리스트를 펼치고 만든 테이블을 누르면 화면에 보이게 된다.
그 중 모델에서 확인할 수 있다.
'Oracle DB 11g > 02.활용, SQL' 카테고리의 다른 글
[DB]02-06.Oracle DB 서브 쿼리(sub Query), IN, ALL, EXISTS (0) | 2018.10.05 |
---|---|
[DB]02-05.Oracle DB REFERENCE, 참조 제약 조건(외래키, Unique 제약 조건, 연계 참조 무결성 제약조건, Check 제약 조건) (0) | 2018.10.04 |
[DB]02-03.Oracle DB 트랜잭션(TRANSACTION), SAVE POINT (0) | 2018.10.02 |
[DB]02-02.오라클 Data Manipulation Language, DML(Insert, Update, Delete, Merge, Select) (0) | 2018.10.02 |
[DB]02-01.테이블 컨트롤,컬럼 타입 설정 (0) | 2018.10.01 |