테이블 생성

CREATE TABLE users(
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT
,`name` VARCHAR(50) NOT NULL COMMENT '이름'
,gender CHAR(1) NOT NULL COMMENT 'F=여자, M=남자'
,created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP()
,updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP()
,deleted_at DATETIME
);
-- AUTO_INCREMENT : +1 함
-- UNSIGNED : 양수만 허용
-- NOT NULL : NULL을 금지
-- COMMENT : 코멘트 남기기(주석 같은 거)
-- DEFAULT CURRENT_TIMESTAMP() : 값이 없을 때 현재 시간 자동 저장
-- 디폴트라 넣지 않아도 됨
-- ENGINE=INNODB : 스토리지 엔진(디폴트)
-- CHARSET=UTF8MB4 : 문자 인코딩(디폴트)
-- COLLATE=UTF8MB4_bin : 문자열 비교, 정렬 규칙. 대소문자 구분(디폴트)
다른 테이블과 유저 정보 공유하는 테이블 만들기

-- 게시글 테이블
-- pk, 유저번호, 제목, 내용, 작성일, 수정일, 삭제일
CREATE TABLE posts(
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT
,user_id BIGINT UNSIGNED NOT NULL
,title VARCHAR(200) NOT NULL COMMENT '게시글 제목'
,content VARCHAR(1000) NOT NULL COMMENT '게시글 내용'
,created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP()
,updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP()
,deleted_at DATETIME
);
테이블 수정

-- FK 추가 방법
ALTER TABLE [테이블명]
ADD CONSTRAINT [Constraint명]
FOREIGN KEY (Constraint 부여 컬럼명)
REFERENCES 참조케이블명(참조테이블 컬럼명)
[ON DELETE 동작 / ON UPDATE 동작];
-- users와 posts의 유저 번호 연결 :
ALTER TABLE posts
ADD CONSTRAINT fk_posts_user_id
FOREIGN KEY user_id
REFERENCES users(id);
-- FK 삭제
ALTER TABLE posts
DROP CONSTRAINT fk_posts_user_id
;

테이블 삭제
DROP TABLE posts;
DROP TABLE users;
컬럼 추가 및 삭제

-- 추가
ALTER TABLE posts
ADD COLUMN image VARCHAR(100)
;
-- 삭제
ALTER TABLE posts
DROP COLUMN image
;
컬럼 수정

ALTER TABLE users
MODIFY COLUMN gender VARCHAR(10) NOT NULL COMMENT '남자, 여자, 미선택'
;
AUTO_INCREMENT 값 수정