TIL 23일차 (20240125)

박세연·2024년 1월 25일

TIL

목록 보기
18/70

어제에 이은 SQL

✏️ 외래키 제약 조건

여기에서는 1:1, 1:n, n:m 관계가 있다.

CREATE TABLE 테이블명
  FOREIGN KEY (현재 컬럼명) REFERENCES 참조_테이블명 (참조_컬럼명)
    ON DELETE [아래의 연계 참조 제약 조건 (삭제시)]
    ON UPDATE [아래의 연계 참조 제약 조건(수정시)]
);

➕ 심화 - 연계 참조 무결성 제약 조건

🐻 CASCADE: 연계

  • 참조하고 있는 개체가 변경, 삭제될 경우 함께 변경, 삭제됨
FOREIGN KEY (userId) REFERENCES Users(userId)
    ON DELETE CASCADE
    ON UPDATE CASCADE;

🐻 NO ACTION

  • 자식 테이블이 참조하고 있을 경우 데이터 삭제, 변경 불가
FOREIGN KEY (userId) REFERENCES Users(userId)
    ON DELETE CASCADE
    ON UPDATE CASCADE;

🐻 SET NULL

  • 참조하고 있는 개체가 변경, 삭제되면 현재 데이터를 NULL로 변경
ON DELETE SET NULL
ON UPDATE SET NULL;

🐻 SET DEFAULT

  • 참조하고 있는 개체가 변경, 삭제되면 현재 데이터를 기본 값으로 변경
ON DELETE SET DEFAULT
ON UPDATE SET DEFAULT;

🐻 SELECT JOIN

SELECT p.postId, p.title, p.content, u.email
FROM Posts as p
JOIN Users as u
	ON p.userId = u.userId;

FROM ... as, JOIN as...: 별칭(alias)으로 코드를 깔끔하게 해줌
➕ Join --- on 결합 조건(두 테이블 간의 관계): 두 개 이상의 테이블을 결합할 때 어떤 조건으로 테이블을 결합할 것인지를 정의할 때 사용

JOIN Users as u
	ON p.userId = u.userId;
profile
배워나가는 중

0개의 댓글