이번 포스팅에서는 MySQL을 이용해 테이블을 생성해보고자 한다.
< 목차 >
- 테이블 생성하기
- 제약조건 (Constraint)
1. 테이블 생성하기
우선 MySQL에 접속한 뒤 어느 데이터베이스에서 테이블을 생성할 것인지 선택해주도록 하자. 여기서는 새로 데이터베이스를 만들어서 선택해보도록 하겠다.
-- 데이터베이스 생성
CREATE DATABASE example;
-- 데이터베이스 선택
USE example;
이제 example 데이터베이스 안에서 테이블을 생성해주면 된다. 테이블 생성 구문은 기본적으로 CREATE TABLE [테이블명] 으로 시작한다. 하지만 테이블을 생성할 때는 어떠한 필드를 넣어줄 것인지도 같이 작성해줘야 한다. 그리고 각각의 필드가 어떠한 데이터 타입을 가지고 있는지 역시 지정해줘야 한다.
-- 필드명과 데이터 타입을 지정해서 테이블을 생성해준다.
CREATE TABLE board (
idx INT,
title VARCHAR(40),
content TEXT,
date TIMESTAMP,
hit INT
);
위의 코드를 통해 우리는 board라는 이름을 가진 테이블을 만들었고 해당 테이블은 idx, title, content, date, hit 이라는 필드를 가지고 있다. 각각의 데이터 타입에 관한 내용은 이전 포스팅에 다뤘던 내용이므로 아래의 글을 참고하면 도움이 될 것이다.
2022.02.17 - [Node.js/MySQL] - Node.js - MySQL (2) SQL 구문 정리
2. 제약조건 (Constraint)
테이블을 생성할 때 필드명과 데이터 타입 이외에도 제약조건(constraint)이란 것을 넣을 수 있다. 제약조건은 데이터를 입력받을 때 실행되는 검사 규칙을 의미하며 이러한 제약조건은 CREATE문으로 테이블을 생성할 때나 ALTER문으로 필드를 추가할 때 설정할 수 있다.
MySQL에서 사용할 수 있는 제약조건은 다음과 같다.
1. NOT NULL : 해당 필드는 null값을 저장할 수 없게 된다. 여기서 null은 "값 없음"을 뜻한다. 즉, NOT NULL로 제약조건이 걸려있는 필드는 반드시 값이 존재해야만 한다.
2. NULL : 해당 필드에서 null값을 허용한다는 의미이다.
3. UNIQUE : unique 제약조건이 걸려있는 필드는 서로 다른 값들을 가져야만 한다. 중복된 값을 허용하지 않고 싶을 때 사용한다.
4. DEFAULT : 해당 필드의 기본값을 설정할 수 있다.
5. AUTO_INCREMENT : 해당 필드 값을 1부터 시작하여 새로운 레코드가 추가될 때마다 1씩 증가된 값을 저장하게 된다. 자동으로 값이 들어가기 때문에 따로 값을 입력해서 넣어줄 필요가 없다. 그리고 AUTO_INCREMENT 키워드 다음에 대입연산자(=)를 사용해서 시작값을 변경할 수 있다.
6. PRIMARY KEY : 기본키는 하나의 테이블 안에서 각 행의 데이터를 유일하게 식별하는데 사용된다. 특정 필드에 primary key 제약조건을 주게되면 그 필드를 이용해 데이터를 유일하게 식별할 수 있다. 해당 필드는 NOT NULL 과 UNIQUE 제약조건의 특징을 모두 가지게 된다.
7. FOREIGN KEY : 외래키는 다른 테이블의 레코드를 참조하기 위한 키값으로 사용된다. foreign key 제약조건이 들어간 필드를 이용해 다른 테이블의 레코드를 참조할 수 있다.
이제 제약조건을 넣어 board 테이블을 다시 생성해보자.
CREATE TABLE board (
idx INT AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(40) NOT NULL,
content TEXT NULL,
date TIMESTAMP NOT NULL,
hit INT NOT NULL
);
이번에는 MySQL에서 직접 입력하는 것이 아닌 SOURCE 구문을 사용해서 테이블을 생성해 보고자 한다. vsCode(Visual Studio Code)를 열어서 위의 내용이 담긴 sql 파일을 생성해 보았다. 그리고 제대로 테이블이 생성되었는지 확인하기 위해 INSERT 문을 추가로 작성하여 테스트 데이터를 집어넣었다.
db.js 파일의 경로를 복사한 후 mysql에서 "SOURCE [파일경로]"를 입력해 주도록 하자. 다음과 같이 테이블이 제대로 생성된 것을 확인할 수 있다.
'MySQL' 카테고리의 다른 글
Node.js - MySQL (6) 환경변수 설정하기 (.env) (2) | 2022.03.01 |
---|---|
Node.js - MySQL (5) 커넥션 풀 (Connection Pool) (0) | 2022.02.28 |
Node.js - MySQL (4) MySQL 연결하기 (개념) (0) | 2022.02.28 |
Node.js - MySQL (2) SQL 구문 정리 (0) | 2022.02.17 |
Node.js - MySQL (1) 환경설정 (0) | 2022.02.17 |