SQL study [21.08.25]
본문 바로가기
Data Base/Daily_study

SQL study [21.08.25]

by 조훈이 2021. 8. 25.

SQL study [21.08.25]


FOREIGN KEY <Fieldname> REFERENCES <Table name> (<Field name>) ON DELETE ~

CREATE TABLE Parent (
	ID INT PRIMARY KEY,
	SCORE INT NOT NULL,
	NAME VARCHAR(30)
    );

CREATE TABLE Child (
	PID_CASCADE INT, #DELETE/UPDATE 시 CASCADE 처리되는 FK
	PID_SETNULL INT, #DELETE/UPDATE 시 SET NULL 처리되는 FK
	NUMBER INT,
	FOREIGN KEY (PID_CASCADE) REFERENCES Parent(ID) ON DELETE CASCADE ON UPDATE CASCADE,
	FOREIGN KEY (PID_SETNULL) REFERENCES Parent(ID) ON DELETE SET NULL ON UPDATE SET NULL
    );
    
#FK 선언법
	FOREIGN KEY(A) REFERENCES B(C) ~;
# 지정된 테이블의 A 필드를 B 테이블의 C 필드를 참고로 FK로 설정.

   - ON UPDATE CASCADE #부모 테이블의 Primary 값이 업데이트 되는 경우 하위테이블의 Reference 값은 수정된 값을 가진다.

   - ON UPDATE SET NULL #위와 같은 경우 하위테이블의 Reference 값은 NULL 값을 가진다.

 

ON DELETE ~ / ON UPDATE ~

   - CASCADE : 삭제/수정이 같이 이루어짐. Master 삭제/수정 -> Child 삭제/수정

   - SET NULL : 삭제/수정시 NULL 값으로 변경됨 Master 삭제/수정 -> Child 에서 해당 Field == NULL

   - NO ACTION : 삭제/수정해도 참조하는 테이블의 데이터는 변경 X -> 참조무결성

   - SET DEFAULT : 삭제/수정시 참조하는 테이블의 데이터는 DEFAULT VALUE로 설정됨

   - RESTRICT : 참조하는 테이블에 데이터가 남아있으면 참조되는 테이블의 데이터는 수정/삭제 부락

 

DEFAULT

CREATE TABLE Accounts(
	ID INT PRIMARY KEY,
	NAME VARCHAR(30) DAFAULT = 'No name'
    );
    
#ALTER 을 이용한 SET DEFAULT
ALTER TABLE Accounts
ALTER NAME SET DEFAULT 'No name';

#DEFAULT 제약 조건 삭제
ALTER TABLE Accounts
ALTER NAME DROP DEFAULT

   - NAME 필드의 Default value 를 'No name' 으로 설정

 

VARCHAR(n)

   - n 길이가 넘는 문자열은 저장 못 한다.

 

DELETE/DROP/TRUNCATE

 

JOIN

   : DB 내의 여러 테이블에서 가져온 레코드를 조합하여 하나의 테이블이나 결과 집합으로 표현해준다.

   * SELECT 문과 함께 자주 사용이 된다.

   - INNER JOIN

   - LEFT JOIN

   - RIGHT JOIN


오늘의 한 마디 : 파이팅

728x90

'Data Base > Daily_study' 카테고리의 다른 글

SQL study [21.09.03]  (0) 2021.09.03
SQL study [21.09.02]  (0) 2021.09.02
SQL study [21.08.24]  (0) 2021.08.24
SQL study [21.08.23]  (0) 2021.08.24
SQL study [21.08.19]  (0) 2021.08.19

댓글