[NodeJs] SQL

Darcy Daeseok YU ·2023년 1월 13일
0

CREATE TABLE

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 = '사용자 정보 테이블'
    -> ENGINE = InnoDB;

• NULL과 NOT NULL은 빈칸을 허용할지 여부를 묻는 옵션입니다. comment 컬럼만 NULL이고, 나머지는 모두 NOT NULL입니다. 자기소개를 제외한 나머지 컬럼은 반드시 로우를 생성할 때 데이터를 입력해야 합니다.

• id 컬럼에는 추가로 AUTO_INCREMENT가 붙어 있습니다. 숫자를 저절로 올리겠다는 뜻입니다. 예를 들어 처음에 Zero라는 사람의 데이터를 넣으면 MySQL은 알아서 id로 1번을 부여합니다. 다음에 Nero라는 사람의 데이터를 넣으면 자동으로 id 2번을 부여합니다. 이를 가능하게 하는 옵션이 AUTO_INCREMENT입니다.

• UNSIGNED는 숫자 자료형에 적용되는 옵션입니다. 숫자 자료형은 기본적으로 음수 범위를 지원합니다. 예를 들어 INT는 -2147483648~2147483647까지의 숫자를 저장할 수 있습니다. 만약 UNSIGNED가 적용되어 있다면 음수는 무시되고 0~4294967295까지 저장할 수 있습니다. FLOAT과 DOUBLE에는 UNSIGNED 적용이 불가능합니다. 나이처럼 음수가 나올 수 없는 컬럼은 체크해두는 것이 좋습니다.

• ZEROFILL은 숫자의 자릿수가 고정되어 있을 때 사용할 수 있습니다. 가끔 자료형으로 INT 대신 INT(자릿수)처럼 표현하는 경우가 있습니다. 이때 ZEROFILL을 설정해둔다면 비어 있는 자리에 모두 0을 넣습니다. 예를 들어 INT(4)인데 숫자 1을 넣었다면 0001이 되는 식입니다. 실습 예제에서는 age 컬럼에 UNSIGNED 옵션만 주었습니다.

profile
React, React-Native https://darcyu83.netlify.app/

0개의 댓글