일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 딥러닝
- 텍스트마이닝
- 정보처리기사필기
- 데이터입출력구현
- 혼공머신
- numpy/pandas
- pandas
- 연습문제
- C++
- 컴퓨터비전
- 데이터베이스
- CNN
- 컴퓨터구조
- 코딩테스트
- JSP/Servlet
- 자바
- 파이썬라이브러리
- 영어공부
- 정수와유리수
- 파이썬
- html/css
- CSS
- 운영체제
- 중학1-1
- SQL
- 자바 실습
- 머신러닝
- 중학수학
- 데이터분석
- 정보처리기사실기
- Today
- Total
클라이언트/ 서버/ 엔지니어 "게임 개발자"를 향한 매일의 공부일지
제약 조건 2 - PRIMARY KEY, FOREIGN KEY, CHECK, DEFAULT 제약 조건 본문
제약 조건 2 - PRIMARY KEY, FOREIGN KEY, CHECK, DEFAULT 제약 조건
huenuri 2024. 8. 23. 16:51조금은 힘에 부치지만 다시 공부를 시작해보자! 이제 4가지 제약 조건만 공부하면 된다. 선생님이 제약 조건을 수업 시간에 아주 간단하게 한 줄만 설명한 데는 이유가 있었다.
그리고는 책에 나와있으니 책을 보라고 하셨다.
PK와 FK는 매우 중요하니 집중해서 학습해보기로 하자. 집중이 안될 때는 음악을 듣는 것이 도움이 된다. 내가 좋아하는 피아노 MR을 들으며 공부에 다시 임해보는 중이다.
학습 내용
- 유일하게 하나만 있는 PRIMARY KEY
- 다른 테이블과 관계를 맺는 FOREIGN KEY
- 데이터 형태와 범위를 정하는 CHECK
- 기본값을 정하는 DEFAULT
학습 시간
새벽 6시 50분 ~ 8시 <1시간 10분 소요>
1. 이전 제약 조건 복습
데이터 무결성
이미 생성된 테이블에 제약 조건 지정
제약 조건 변경 및 삭제
2. 유일하게 하나만 있는 PRIMARY KEY
UNIQUE와 NOT NULL 제약 조건의 특성을 모두 가지는 조건이다. 즉 데이터의 중복도 NULL도 허용하지 않는다. NULL이 아닌 유일한 값을 가지므로 주민등록번호나 EMP 테이블의 사원 번호같이 테이블의 각 행을 식별하는데 활용된다.
PRIMARY KEY 제약 조건은 테이블에 하나밖에 지정할 수 없다. 그리고 특정 열을 PRIMARY KEY로 지정하면 해당 열에는 자동으로 인덱스가 만들어진다.
테이블을 생성하며 제약 조건 지정하기
테이블을 생성할 때 특정 열에 PRIMARY KEY 설정하기
생성한 PRIMARY KEY 확인하기
테이블을 생성하며 제약 조건 이름 직접 지정하기
그리고 출력해보았을 때 제약 조건이 추가되었음을 보게 된다.
Shift + F4를 누르면 해당 테이블의 제약조건을 확인할 수 있다. 테이블을 출력했을 때보다 더 한눈에 볼 수 있어 좋은 것 같다.
3. 다른 테이블과 관계를 맺는 FOREIGN KEY
외래키, 외부키로도 부르는 FOREIGN KEY는 서로 다른 테이블 간 관계를 정의하는데 사용하는 제약 조건이다. 특정 테이블에서 PRIMARY KEY 제약 조건을 제정한 열을 다른 테이블의 특정 열에서 참조하겠다는 의미이다.
참조관계를 정의하면 EMP 테이블의 DEPTNO 열에는 DEPT 테이블의 DEPTNO 열에 존재하는 값과 NULL만 저장할 수 있게 된다.
FOREIGN KEY 지정하기
DEPT_FK 테이블 생성하기
EMP_FK 테이블 생성하기
DEPT_FK에 데이터 삽입하기
데이터가 잘 들어가 있음을 확인했다.
FOREIGN KEY로 참조 행 데이터 삭제하기
10번 부서 데이터 삭제하기
삭제하려는 값이 참조하고 있는 자식 레코드가 있을 경우 이렇게 에러가 발생한다. 이럴 때는 다음과 같은 방법을 사용해야 한다.
10번 부서를 삭제할 경우 여기에 속한 사원 데이터도 함께 삭제되기 때문에 NULL로 변경해야 한다는 뜻이다.
4. 데이터의 형태와 범위를 정하는 CHECK
CHECK 제약 조건은 열에 저장할 수 있는 값의 범위 또는 패턴을 정의할 때 사용한다.
테이블을 생성할 때 CHECK 제약 조건 설정하기
LOGIN_PWD 열의 길이가 3 초과인 데이터만 저장 가능하도록 조건을 걸어두었다.
CHECK 제약 조건에 맞지 않는 예
하지만 여기서는 비밀번호가 지정한 3자리를 넘지 않기에 조건에 맞지 않는다는 오류가 뜨는 것이다.
CHECK 제약 조건에 맞는 예
CHECK 제약 조건 확인하기
CHECK 제약 조건은 USER_CONSTRAINTS 데이터 사전에서 확인할 수 있다. CONSTRAINT_TYPE 열 값이 C이므로 NOT NULL, CHECK 제약 조건은 모두 C로 출력된다.
5. 기본값을 정하는 DEFAULT
제약 조건과는 별개로 특정 열에 저장할 값이 지정되지 않았을 경우에 기본값을 지정할 수 있다.
테이블을 생성할 때 DEFAULT 제약 조건 설정하기
DEFAULT로 지정한 기본값이 입력되는 INSERT문 확인하기
명시적으로 NULL을 지정한 첫번째 INSERT문을 실행했을 때는 LOGIN_PWD 일이 비어있다. 그리고 두번째 INSERT문처럼 LOGIN_PWD 열값을 지정하지 않으면 기본값인 1234가 들어가는 것을 확인할 수 있다.
학습을 마치고
여기까지 해서 길고 긴 14장 제약 조건 학습을 모두 마쳤다. 수업 중 사용하는 예제는 사용할 수 없는 것들이 많아서 대부분 책 위주로 진행했다. 역시 난 공부하며 음악을 들으면 집중이 하나도 되지 않아서 5분도 되지 않아서 꺼버렸다.
집중을 위해 서서 하니 더 잘되는 것 같았다. 이번 시간의 몰입도는 75% 정도인 것 같다. 이제 제약 조건이 무엇인지 어떻게 사용하는지 정도는 알게 되었다.
수업 시간에 PR, FK, CHECK 등의 키가 나올 때 지금까지는 무슨 말인지 몰랐는데 이제는 어느 정도 알게 되었다. 정처기 시험에서도 이러한 내용이 등장한다. 이제 나머지 시간에는 연습문제를 풀고, 아침 예배 전까지 15장가지 끝내볼 것이다.
'알고리즘 및 자료 관리 > 데이터베이스' 카테고리의 다른 글
사용자, 권한, 롤 관리 1 - 사용자 관리 및 권한 관리 (0) | 2024.08.23 |
---|---|
제약 조건 3 - 단원 마무리 연습문제 풀기 (0) | 2024.08.23 |
제약 조건 1 - 제약 조건의 종류와 NOT NULL, UNIQUE 제약 조건에 대하여 (0) | 2024.08.23 |
객체 종류 3 - 단원 마무리 연습문제 풀기 (0) | 2024.08.23 |
객체 종류 2 - 더 빠른 검색을 위한 인덱스와 시퀀스 그리고 동의어까지 (0) | 2024.08.23 |