티스토리 뷰
일병시절에는 판다스와 케라스 , 상병때는 리액트와 알고리즘
병장땐? 'Nodejs 와 DB'
(진짜 별걸 다해봤다)
mysql -h localhost -u root -p : 경로상관 없이 sql시작
use [DB이름] : 꼭 로그인 하면 써주자
DESC [테이블 이름] : 테이블의 column 정보 확인
SHOW TABLES : DB에 있는 테이블 목록 확인
exit : 종료
+ 에러 발생시 : sudo service mysql restart
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 nodejs.comments(
id INT NOT NULL AUTO_INCREMENT,
commenter INT NOT NULL,
comment VARCHAR(100) NOT NULL,
created_at DATETIME NOT NULL DEFAULT now(),
PRIMARY KEY(id),
INDEX commenter_idx (commenter ASC),
CONSTRAINT commenter FOREIGN KEY (commenter) REFERENCES nodejs.users (id) ON DELETE CASCADE ON UPDATE CASCADE)
COMMENT ='댓글'
DEFAULT CHARSET=utf8mb4
ENGINE=InnoDB;
테이블 생성 명령어 : CREATE TABLE [DB명 . TABLE명]
이후에 한줄 씩 col(열)을 만들어 준다.
col 자료형
- INT, FLOAT, DOUBLE 와 같은 정수, 실수 자료형
- TINYINT : -128 ~ 127의 정수
- CHAR(자릿수) : 길이가 정확히 10인 문자열
- VARCHAR(자릿수) : 길이가 0~10인 문자열
- TEXT : 긴 글을 저장할 때 사용
- DATETIME : 날짜와 시간에 대한 정보
자료형 뒤에 붙는 옵션
- NULL, NOT NULL : NULL이면 빈칸 허용, NOT NULL이면 반드시 데이터가 입력되어야함
- AUTO_INCREMENT : 별도의 값을 안넣어도 숫자를 자동으로 올려줌
- UNSIGNED : 개념은 C와 같음
- ZEROFILL : 숫자의 자릿수가 고정되어 있을 때 사용 가능. INT(4) 1 => 0001 로 변환
- DEFAULT : DB 저장시 COL에 값이 없다면 설정된 기본값을 넣어줌 (now()를 넣으면 현재시간)
- PRIMARY KEY : 생성된 ROW를 대표하는 값 설정
- UNIQUE INDEX : 해당 값이 고유해야 하는지 여부. [컬럼이름]_UNIQUE 로 이용
(PRIMARY KEY는 자동으로 UNIQUE INDEX를 포함해준다.)
테이블에 대한 설정
- COMMENT : 테이블에 대한 보충 설명
- DEFAULT CHARACTER SET : utf-8을 설정해줘야 한글이 안 깨짐
- ENGINE : MyISAM or InnoDB를 이용
FOREIGN KEY : 다른 테이블의 기본 키를 저장할 COL
CONSTRAINT [제약 조건명] FOREIGN KEY [COL명] REFERENCES [참고할 외부 테이블 컬럼]
추가로 ON UPDATE, ON DELETE 를 CASCADE로 두면 외부 테이블 정보가 수정, 삭제되면 따라감
'Web > BackEnd' 카테고리의 다른 글
장고 REST API 정리 (0) | 2022.08.19 |
---|---|
[MySQL] Foreign Key 설정 시 유의점 (0) | 2021.12.12 |
[Node.js] Sequelize로 CRUD 작업 처리하기 (0) | 2021.12.11 |
[MySQL] Create, Read, Update, Delete (CRUD) (0) | 2021.12.10 |
Node.js 시작 (0) | 2021.12.04 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday