일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 프론트엔드
- 스프링 시큐리티
- 인텔리제이 콘솔 한글깨짐 해결방법
- 자바 문법
- 인텔리제이 콘솔 한글깨짐
- sql 타입
- 소셜로그인 API
- 인텔리제이 콘솔 한글안됨
- 문자보내는 API사용방법
- 자바스크립트 변수 상수 차이
- 스프링 엑셀 다운로드 기능 만들기
- SQL 문법
- 스프링 문자 인증
- 스프링 엑셀 다운로드 기능
- 리액트 훅 사용하기
- 스프링 문자보내기 API
- coolSMS 사용방법
- 문자보내는 API
- CSS
- 스프링 엑셀 다운로드 의존성
- JSTL 사용방법
- 리액트 Context 사용방법
- css layout
- 자바스크립트
- 프론트엔드개발자
- css 레이아웃
- 스프링 문자보내기 구현
- JSTL 초기세팅
- 엑셀 다운로드 기능
- HTML
- Today
- Total
keembloo
데이터베이스 기본키(PK), 외래키(FK) 본문
1 . 기본키 식별키 Primary Key (PK)
- 테이블의 유일한 값을 가지는 필드
- 데이터의 중복이 없는 식별가능한 필드를 선정
- 테이블 1개당 PK필드 1개 이상 (권장)
- 중복 , null , 공백은 사용불가
- 해당 PK필드는 다른테이블의 필드에서 참조 당한다
- ex) 주민번호, 학번, ISBN(책번호) , 상호코드 등등
- not null + unique 속성을 합쳐놓은 것
2. 참조키 외래키 Foreign Key (FK)
- 다른 테이블의 PK필드와 연결
- FK필드명은 PK필드명과 동일하게 사용 (권장)
- FK필드의 타입은 PK필드의 타입과 동일 (필수)
- 참조하는 테이블에서 FK 필드 선언 ( 1:M 관계에서 M쪽이 참조하는 테이블 )
- ex) 점수테이블(접수자) , 출결(출근한사번) , 각종 서류(주민등록) , 대여(ISBN) , 재고관리(상호코드) 등등
- 중복 , null 가능
- 제약조건
1. pk
사용방법 : primary key (pk필드명)
2. fk
사용방법 : foreign key (fk필드명) references pk테이블명(pk필드명) [선택 옵션]
3. auto_increment
insert(삽입)할때 해당 필드를 생략하면 자동번호 부여된다
자동으로 1씩 증가된다
auto_increment 사용하려면 무조건 pk필드이면서 숫자만 가능하다
4. not null
insert(삽입)할때 해당 필드의 공백 방지
5. unique
insert(삽입)할때 해당 필드의 값 중복 방지
6. default
insert(삽입)할때 해당 필드의 값 생략하면 자동으로 대입되는 기본값
생략하지 않고 고객이 값을 입력한다면 그 값이 들어감
default 숫자
default now()
default '문자열'
SQL 함수
now() | 현재날짜/시간 반환해주는 함수 |
PK의 변화가 있을때
PK 삭제되었을때 FK는?
on delete cascade
기본키의 레코드가 삭제되면 참조키의 레코드 같이 삭제
예) 회원탈퇴하면 회원이 작성한 글도 같이 삭제
on delete restrict
기본값이다.
참조되고 잇는 기본키는 삭제 불가능
on delete no action
아무런 변화가 없는 상태 = restrict
- 테이블 삭제 순서 : FK테이블 먼저 삭제하고 PK테이블 삭제
-테이블 생성 순서 : PK테이블 먼저 생성하고 FK테이블 생성
예) 게시물의 작성된 글이 있으면 회원탈퇴가 불가능
on delete set null
기본키의 레코드가 삭제되면 참조키의 값을 null로 변경
예) 회원탈퇴하면 회원이 작성한 글 그대로 존재 작성자는 null
PK 수정되었을때 FK는?
on update cascade
기본키가 변경되면 참조키도 같이 변경
예) 회원번호가 수정되면 작성자의 번호도 같이 수정된다
on delete restrict
기본값
'MySQL(DB)' 카테고리의 다른 글
MySQL Join 정리 (1) | 2023.08.13 |
---|---|
MySQL select 문법 정리 / 연산자 문법 정리 (0) | 2023.08.09 |
MySQL 워크벤치 안전모드 해제하는 방법 (0) | 2023.08.07 |
SQL 기본 문법 정리 (0) | 2023.08.02 |
MySQL 설치하는 방법 (4) | 2023.07.31 |