오늘은 실제로 sql을 통해 테이블을 만들고 pk와 fk로 연결해보기로 했어요
도커 컴포즈로 mariaDB로 띄워봤어요.

posts 테이블도 만들고

유저 테이블도 다음과 같이 만들었어요.
DESC 테이블명 을 통해 테이블 칼럼 정보를 조회 가능해요
만약 NOT NULL 로 설정해놓은 칼럼에 null값을 넣으면 어떻게 될까요?


결과로 default 값을 설정하지 않았는데 null 값을 넣어서 실행도 전에 오류가 났어요

아예 null을 넣으니 nullable 하지 않다는 오류가 났어요.
created_at 에서 매우 자주 사용한다.Not Null - 직접 null로 작성하는 것도 안됨
Default - 공란으로 삽입되면 기본값이 설정됨.

updated_at은 ON UPDATE 절에 내용을 추가하면 돼요.

이렇게 extra에 업데이트 시간을 체크하도록 되어있어요.
FK는 다른 테이블의 어떤 id를 지정할 것인지 해줘야해요.
CREATE TABLE posts (
id int PRIMARY KEY AUTO_INCREMENT,
title varchar(255) NOT NULL,
content text NOT NULL,
created_at timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at datetime default NOW() on update NOW(),
user_id int references users(id)
);
저는 users 테이블의 pk인 id를 FK로 지정했어요.

RDBMS의 가장 중요한 JOIN이에요.
저희는 posts의 id를 기준으로 하기위해 LEFT JOIN으로 지정했어요.
필요없게 userId가 두 개나 생성되기 때문에, select할 때 필요한 칼럼만 고를 필요가 있어요.