
명령어는 대문자 스키마명은 대>소 테이블명은 소문자
Docker Desktop 실행
docker exec -it mariadb /bin/bash
mariadb -u root -p
pw: root
1. Board 스키마 생성
CREATE DATABASE Board;
USE Board



CREATE TABLE users(
id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(30) NOT NULL,
job VARCHAR(100),
birth DATE,
PRIMARY KEY (id)
);
SHOW TABLES;
DESC users;
4. 게시글 테이블 생성
CREATE TABLE posts(
id INT NOT NULL AUTO_INCREMENT,
title VARCHAR(100) NOT NULL,
content VARCHAR(2000),
created_at TIMESTAMP DEFAULT NOW(),
PRIMARY KEY (id)
);



+ 팁
mariadb insert reference 검색 (공식문서랑 친해져요~)
3. 사용자 테이블 삽입
기왕이면 birth 든 뭐든 형식 맞춰서 넣어줘잉


5. 게시글 데이터 삽입
날짜 안넣어도 now가되

MYSQL (mariadb) 날짜/시간 타입
1. DATE
- 날짜만
- YYYY-DD-MM
2. DATETIME
- 날짜 + 시간
- YYYY-MM-DD HH:MM:SS (24시간제)
3. TIME
- 시간
- HH:MM:SS
4. TIMESTAMP : 자동입력을 도와줍니다!!
- 날짜 + 시간
- YYYY-MM-DD HH:MM:SS (24시간제)
시스템 시간대 정보에 맞게 시간을 저장한다
UTC(국제 표준 시간) 기준으로 ( 한국시간 - 9시간 )으로 입력됨
5. 게시글 데이터 삽입
INSET INTO posts (title,content)
VALUES ("title3","content3")


6. 게시글 테이블에 수정일자 추가
테이블 컬럼 수정
ALTER TABLE posts
ADD COLUMN updated_at DATETIME
DEFAULT NOW()
ON UPDATE NOW();


아까 있었던 거에도 updatedat이 생겼어요
7. p게시글 테이블 id 2 수정

8. 게시글 테이블에 작성자 컬럼 FK 추가
ALTER TABLE posts
ADD FOREIGN KEY(user_id)
REFERENCES users(id);

ALTER TABLE posts
ADD COLUMN user_id INT;
컬럼없음 이슈로 컬럼 먼저 만들어줘요

MUL == muptiple 의 약자
여러행이 같은 값을 가질 수 있어여!

9. JOIN 🚀
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;

auto_increment_lock_mode
이게 실패해도 auto increment 가 올라가서 lock 해주는거임
'PROJECT > [ 유튜브 ]' 카테고리의 다른 글
| validation 유효성검사와 import 사용하기 try catch 함수와 모듈화 (0) | 2025.10.01 |
|---|---|
| MySQL Workbench를 사용하기 위한 고군분투,, PK, NN, UQ, B, UN, ZF, AI / mysql2 / Callback require = > Promise import(ES6)로!!! 바꾸자!!!(리팩토링) / select insert update delete (0) | 2025.09.30 |
| 데이터베이스!!! (0) | 2025.09.26 |
| Server, Router/ 기능합치기 - 리팩토링 (0) | 2025.09.25 |
| 로그인 API(2) (0) | 2025.09.24 |