on
MySQL 데이터베이스 생성 및 테이블 생성
MySQL 데이터베이스 생성 및 테이블 생성
[ 데이터 베이스 생성 ]
데이터베이스 = 스키마
mysql> CREATE SCHEMA `nodejs` DEFAULT CHARACTER SET utf8;
CREATE SCHEMA `데이터베이스 이름` : 데이터베이스 생성
DEFAULT CHARATCER SET utf8 : 한글 사용
[ 테이블 생성 ]
mysql> CREATE TABLE nodejs.users( -> id INT NOT NULL AUTO_INCREMENT, -> name VARCHAR(20) NOT NULL, -> age INT UNSIGNED NOT NULL, -> married TINYINT NOT NULL, -> comment TEXT NULL, -> created_at DATETIME NOT NULL DEFAULT now(), -> PRIMARY KEY(id), -> UNIQUE INDEX name_UNIQUE (name ASC)) -> COMMENT = '사용자 정보' -> DEFAULT CHARACTER SET = utf8 -> ENGINE = InnoDB;
CREATE TABLE 테이블 이름 : 테이블 생성
컬럼
id
name
age
married
comment
created_at
자료형
INT : 정수
VARCHAR(자릿수) : 가변 길이 문자열
CHAR(자릿수) : 고정 길이 문자열
TEXT : 긴 글
TINYINT : -128 ~ 127 , 1 또는 0만 저장할시 boolean으로 사용
DATETIME : 날짜와 시간 정보
DATE : 날짜 정보
TIME : 시간 정보
옵션
NULL , NOT NULL : 빈칸 허용 여부
AUTO_INCREMENT : 숫자 자동 증가
UNSIGNED : 숫자 자료형 기본 INT 는 -21억 ~ 21억이지만, unsigned가 붙으면 0~42억
ZEROFILL : 숫자 자릿수 고정
DEFAULT_now() : 값이 없다면 현재 시각 넣는다.
PRIMARY KEY : 로우를 대표하는 고유한 값 = 로우를 구별할 고유한 식별자
UNIQUE INDEX : 고유 값인지 확인 여부
=> 데이터베이스가 별도로 컬럼 관리 => 속도가 빠르다.
테이블 자체 설정
COMMENT : 테이블 보충 설명
DEFAULT CHARATER SET utf8 : 한글 설정
ENGINE : 사용 엔진
foreign key
CONSTRAINT 제약조건 FOREIGN KEY 컬럼명 REFERENCES 참고하는 컬럼명
... CONSTRAINT commenter FOREIGN KEY (commenter) REFERENCES nodejs.users (id) ON DELETE CASCADE ON UPDATE CASCADE ...
CASCADE는 연결된 정보도 같이 수정하거나 삭제한다는 뜻이다 => 데이터 불일치 발생 X
from http://jin-pro.tistory.com/103 by ccl(A) rewrite - 2021-09-27 00:00:40