데이터의 무결성(데이터에 결함이 없음)
을 지키기 위한 조건
테이블을 만들때는 제약조건을 설정해줘야 한다
기본키와 외래키가 대표적인 제약조건이다
고유키(UNIQUE)
휴대폰번호, 이메일같이 중복되지 않는 열에는 고유키를 지정
체크(CHECK): 회원의 평균 키는 300CM를 넘지 않을 것이다 실수로 300을 넘어 입력하는 것을 방지하는 제약하는 조건이 체크다.
기본값(DEFAULT)
매번 입력하기 귀찮다면 제약조건으로 기본값을 설정 할 수 있다.
회원탈퇴 여부 컬럼에서는 입력하지 않아도 'N'이 입력되도록 기본값을 설정할 수 있겠다
NOT NULL: 값을 꼭 입력해야하는 NOT NULL 제약조건
1.PRIMARY KEY 제약조건
2.POREIGN KEY 제약조건
3.UNIQUE 제약조건
4.CHECK 제약조건
5.DEFAULT 정의
6.NULL 값 허용
유일한 값을 가진 칼럼 (값이 계속 변경되면 안됨)
NULL값 존재 X 중복값 존재 X
<★PRIMARY KEY(기본 키) 제약조건>
-NOT NULL 제약조건 만들어짐
-UNIQUE 제약조건 만들어짐
-INDEX 만들어줌
-테이블 대표컬럼에 설정 (보통 인위적 식별자로 만듦)
-한테이블에 한 개만 설정 할 수 있다.
첫번째 방식이 제일 많이 쓰임

기본 키 지정 없이 테이블을 만든 후에
ALTER 이용

-출처:한빛미디어
DESCRIBE 테이블명 :테이블의 구성을 볼 수 있음.
회원 멤버 컬럼중에 ID 컬럼이 PK로 쓸 수 있는지 확인해보자
1.먼저 NULL값이 존재하는지 확인
SELECT *
FROM MEMEBER
WHERE ID IS NULL;
아무 데이터도 뜨지 않는다면 NULL값은 없다
그다음 멤버테이블의 행의 갯수와
중복제거된 ID 갯수를 비교 해서
숫자가 같다면 중복값이 존재 하지 않는다는것을 확인 할 수 있다
SELECT COUNT(*) AS 건수,COUNT(DISTINCT ID) AS 유일한갯수
FROM MEMEBER;
건수와 유일한 갯수의 숫자가 같다면 ID는 유일한 값을 가진다는걸 확인 할 수 있다

다른 테이블의 기본키와 연결해주는 칼럼
두 테이블 사이의 관계를 연결해주고 그결과 데이터의 무결성을 보장해주는 역할을 함.
외래 키가 설정된 열은 꼭 다른 테이블의 기본키와 연결됨
회원테이블과 구매 테이블이 바로 대표적인 기본키-외래키 관계이다
기본키가 있는 회원 테이블을 기준 테이블이라고 부르고
외래키가 있는 구매 테이블을 참조 테이블이라고 부른다
구매 테이블의 아이디(FK)는 반드시 회원 테이블의 아이디(PK)로 존재한다.
회원이 아닌 아이디가 구매테이블에 존재하면 안된다
'네이버 쇼핑' 데이터 베이스에 제품을 구매한 기록이 있는 사람은 네이버 회원이라는 의미이다.
그러므로 구매한 기록은 있으나 구매한 사람이 누구인지 모르는 심각한 일은 발생하지 않는다. 구매 테이블의 데이터는 모두 누가 구매했는지 확실히 알 수 있는 ,무결한(오류가 없는)데이터가 된다.
★ 또 기억해야 할 것은 참조테이블이 참조하는 기준 테이블의 열은 반드시 기본키 (PK)나 고유키(UNIQUE)로 설정되어 있어야 한다.
<기준 테이블의 열이 변경될 경우>

