본문 바로가기
수업내용

20230421수업내용

by titlejjk 2023. 4. 21.

오라클 데이터베이스 제약조건 수업내용

CONSTRAINT -> 제약 조건을 만들때 사용하는 예약어

dept2_deptno_pk -> 제약 조건의 이름

PRIMAYRY KEY -> 부여할 제약조건의 종류

세번째줄 CHECK 제약조건은 true(참일때만 loc가 저장된다 즉 참일대만 row가 만들어진다.

정해진 카테고리 나 정해진 조건 및 값만 들어갈수 있도록 해주는 예약어 이다.

SEOUL과 BUSAN 둘중 하나만 입력되도록 설정해 보았다.
조건에 맞게 끔 작성된 테이블 row추가

이런 식으로 테이블에 row를 추가할수 있다.

dept2라는 테이블에 걸려있는 제약조건을 확인해보자

dept2에 걸려있는 제약조건들

SELECT CONSTRAINT_NAME, CONSTRAINT_TYPE

FROM USER_CONSTRAINTS
WHERE TABLE_NAME='DEPT2';

의경로로 들어가 DEPT2테이블에 있는 제약조건을 확인하였다.

칼럼을 정의할때 칼럼 옆에 정의 하는 제약조건을 작성해 준다.(column level제약 조건)

COLUMN LEVEL의 제약조건
다른 테이블과 연결해보기
emp2테이블의 deptno컬럼을 통해 dept2와 연결해보았다.

이렇게 테이블 사이의 관계를 생성할수 있다.

두 테이블의 관계

dept2테이블의 20번 부서번호가 없으면 연결되어있는 emp2에서 20번 부서번호는 입력이 불가하다 그래서 위 사진과 같이 먼저 dept2 테이블에서 부서번호 20을 생성해준 후에 emp2에서 20번이라는 부서 번호를 입력 가능하다.

 

NOT NULL을 제외하고 제약조건을 다른곳에서도 입력이 가능하다.

NOT NULL은 column수준의 제약조건만 가능하다.

위 처럼 NOT NULL을 제외한 PRIMARY KEY나 FOREIGN KEY는 테이블레벨에서도 작성이 가능하다.

 

또 나중에 테이블을 먼저 만들어 놓고 제약조건을 테이블에 적용할 수 있다.

만들어진 테이블에 제약조건은 명령어를 통해 직접 적용이 가능하다.

무언가를 만들때에는 CREATE TALBLE, USER, SEQUENCE

무언가를 삭제할 때에는DROP TABLE, USER, SEQUENCE

를 사용하는데 이 때

무언가를 변경할 때에는 ALTER 라는 명령어를 사용 할 수 있는데 제약조건 명령어를 사용할 때에는 이 ALTER를 사용하면된다.

제약조건이 없는 상태로 만든 테이블 생성명령어

위 처럼 제약조건이 없는 테이블을 먼저 만들어 둔다.

그 다음

emp2테이블 empno에 PRIMARY KEY제약조건을 추가해보자

이런식으로 PRIMARY KEY와 FOREIGN KEY도 추가가 가능하다.

NOT NULL을 추가할 때는 뭔가좀 다르다!

NOT NULL을 추가할때에는 위와 다르게 MODIFY를 거쳐 column수준의 명령어를 통해 NOT NULL제약 조건을 추가가 가능하다.

이렇게 추가된 제약조건들을 비활성화 시킬수도 있는데

empno의 걸려있는 PRIMARY KET를 비활성화 시켜봄

이런식으로 비활성화 시키면 된다.

이런식으로 비활성화 된다.
비활성화를 다시 살려보았다!

이렇게 다시 ENABLE명령어를 통해 다시 활성화 시킬수도 있으며,

제약조건 삭제도가능!

DROP명령어를 통해 제약조건도 삭제 가능하다!

'수업내용' 카테고리의 다른 글

20230234 수업내용  (0) 2023.04.24
2030421수업내용2  (0) 2023.04.21
감기 조심하세요..  (0) 2023.04.21
나는 유리멘탈이였다..  (1) 2023.04.18
2023년도 4월 5일 에이콘아카데미 국비교육 시작  (0) 2023.04.17

댓글