posts relation
| 게시글 번호 | 제목 | 내용 | 작성일자 | 수정일자 | 사용자 번호 |
|---|---|---|---|---|---|
| 1 | A | 안녕하세요 | 2024-01-01 | 2024-01-25 | 1 |
| 2 | B | 반갑습니다 | 2024-01-15 | 2024-01-26 | 2 |
| 3 | C | 잘 부탁 드립니다 | 2024-03-13 | 2024-03-17 | 1 |
| 4 | D | 넵 | 2024-04-01 | 2024-04-15 | 3 |
| 5 | E | 아니요 | 2024-05-01 | 4 | |
| 6 | E | 아니오 | 2024-05-01 | 4 | |
users relation
| 사용자 번호 | 작성자 | 직업 | 생년월일 |
|---|---|---|---|
| 1 | PARK | 영화배우 | 921015 |
| 2 | LEE | 유튜버 | 901228 |
| 3 | PARK | 영화배우 | 930501 |
| 4 | CHOI | 영화배우 | 981123 |
board DB 생성
사용자 테이블 생성
CREATE TABLE users(id INT NOT NULL AUTO_INCREMENT,
-> name VARCHAR(30) NOT NULL,
-> job VARCHAR(100),
-> birth DATE, -> **YYYY-MM-DD 형식으로 저장된다!**
-> PRIMARY KEY (id));

사용자 데이터 삽입
MariaDB [board]> INSERT INTO users(job) VALUES("developer");
ERROR 1364 (HY000): Field 'name' doesn't have a default value
제약조건을 지켜줘야한다!

CREATE TABLE posts(id INT NOT NULL AUTO_INCREMENT,
-> title VARCHAR(30) NOT NULL,
-> content VARCHAR(100),
-> created_at TIMESTAMP DEFAULT NOW(),
-> PRIMARY KEY (id));
INSERT INTO posts(title, content) VALUES('title1', 'contsnt1');

ALTER TABLE posts ADD COLUMN updated_at DATETIME DEFAULT NOW() ON UPDATE NOW();


UPDATE posts SET content = "updated!" WHERE id = 2;

ALTER TABLE posts ADD COLUMN user_id INT;
ALTER TABLE posts ADD FOREIGN KEY(user_id) REFERENCES users(id);


MUL 의 의미 : 중복이 가능하다. → 제약 조건이 필요할 것 같다.
SELECT * FROM posts LEFT JOIN users ON posts.user_id = users.id;
SELECT posts.id, title, content, created_at, updated_at, name, job, birth FROM posts LEFT JOIN users ON posts.user_id = users.id;
