PROJECT/[ 유튜브 ]

SQL Docker Desktop 실행 / MariaDB / Schema 생성 / DataBase생성 / CREATE TABLE / INSERT INTO VALUES / timestamp - UTC / ALTER TABLE ADD COLUMN DEFAULT ON UPDATE / REFERENCES / JOIN

Lim임 2025. 9. 29. 15:53

 

명령어는 대문자 스키마명은 대>소 테이블명은 소문자

 

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();

updated_at 이 생겼긔

아까 있었던 거에도 updatedat이 생겼어요

 

7. p게시글 테이블 id 2 수정

수정하면 updated_at 시간이 달라져욥

 

8. 게시글 테이블에 작성자 컬럼 FK 추가

ALTER TABLE posts

ADD FOREIGN KEY(user_id)

REFERENCES users(id);

 

ALTER TABLE posts

ADD COLUMN user_id INT;

컬럼없음 이슈로 컬럼 먼저 만들어줘요

 

 

MUL == muptiple 의 약자

여러행이 같은 값을 가질 수 있어여!

reference 참고할 게 없어!!

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 해주는거임