728x90
테이블 생성 - 키 정의
- 기본키, 대체키, 외래키를 지정
기본키
- PRIMARY KEY를 사용해 지정
- 모든 테이블에 기본키는 반드시 하나만 지정
- 예 : PRIMARY KEY ( account ) <== 고객의 계정(account)를 기본키로 지정
- 여러 개의 속성으로 구성할 수 있음
- 예 : CONSTRAINT pk_orderID PRIMARY KEY ( customer, item ) <== 기본키로 pk_orderID가 지정되었고, 기본키의 값은 주문을 한 고객 (customer)과 주문제품 (item)으로 구성됨
- 기본키를 지정하지 않아도 됨
- 기본키는 하나의 투플을 선택할 수 있음
대체키
- UNIQUE를 사용해 지정
- 기본키와 같이 각 투플을 유일하게 식별
- 대체키의 값은 테이블 내에서 중복되면 안됨 (유일성)
- NULL 값을 가질 수 있음 (기본키 : NULL 값을 가질 수 없음)
- 한 데이블에서 여러 개 지정할 수 있음
- 예 : UNIQUE (name) <== 고객이름(name) 속성을 대체키로 지정
- 예 : UNIQUE ( customer, item ) <== 기본키의 값은 주문을 한 고객(customer)과 주문제품 (item)으로 구성됨
외래키
- FOREIGN KEY를 사용해 지정
- 참조 테이블을 분명히 밝혀야 함.
- 참조 무결성 제약 조건을 유지
- REFERENCES 다음에 제시
- 예 : FOREIGN KEY ( customer ) REFERENCES Customer( account )
- 참조되는 테이블에서 투플을 삭제하거나 변경시 제약이 따름
- 참조 무결성 제약 조건 옵션
- 참조 무결성 제약 조건 옵션을 선택하지 않은 경우
- ON DELETE NO ACTION 이 자동 선택됨
- ON DELETE NO ACTION 실행
- ON DELETE CASCADE 실행
- ON DELETE SET NULL 실행
- ON DELETE SET DEFAULT
- MySQL 에서는 Parser는 인식하지만, 데이블 정의는 거절됨
- MySQL 에서는 Parser는 인식하지만, 데이블 정의는 거절됨
테이블 생성 - 제약 조건 정의
제약 조건 정의
- 테이블을 정의할 때, 특정 속성에 대하여 제약 조건을 지정할 수 있음
- CHECK 키워드를 사용
- 지정한 제약 조건을 만족하는 투플만 존재할 수 있음.
- 투플을 삽입하거나 수정할 때, 이 제약조건을 지켜야 함. ==> 데이터의 무결성을 위한 제약 조건을 표현하는 방법
- 예 : CHECK ( 재고량 >= 0 AND 재고량 <= 5000 ) <= 모든 제품의 재고량은 항상 0개 이상이고, 5000개 이하
- CONSTRAINT 키워드와 함께 고유의 이름을 부여
- 제약 조건을 여러 개 지정할 때 사용
- 제약 조건을 수정하거나 제거할 때 식별하기 쉽다.
- 예 : CONSTRAINT Chk_date CHECK ((sdate<=usedate) AND (usedate<=expdate))
728x90
'프로그래밍 > Database' 카테고리의 다른 글
[Database] MySQL 테이블 이름변경 및 삭제 (0) | 2020.04.07 |
---|---|
[Database] MySQL 테이블 변경 (0) | 2020.04.07 |
MySQL 테이블 생성, AUTO_INCREMENT(자동증가) (0) | 2020.04.07 |
MySQL 기본 명령어 - 데이터베이스 및 사용자 계정 (0) | 2020.04.06 |
Windows(윈도우)에 MySQL 설치방법 (0) | 2020.04.06 |