creating table

kaitlin_k·2021년 10월 31일
0

SQL

목록 보기
7/21

테이블을 생성할 때 칼럼이름과 데이터타입, 제약조건을 작성한다. 이때 다음 세가지 테이블을 비교해보자.

//NULL 허용, DEFAULT 값 NULL
CREATE TABLE cat1 (
  name VARCHAR(100),
  age INT
);

//NULL 허용X, DEFAULT 값 NULL, 데이터 삽입안하면 에러발생
CREATE TABLE cat2 (
  name VARCHAR(100) NOT NULL,
  age INT NOT NULL
);

//NULL 허용, 데이터 삽입안하면 디폴트값 적용
//의도적으로 NULL 삽입 가능
CREATE TABLE cat3 (
  name VARCHAR(100) DEFAULT 'unnamed',
  age INT DEFAULT 99
);

//NULL 허용X, 데이터 삽입안하면 디폴트값 적용
//의도적으로 NULL 삽입 불가
CREATE TABLE cat4 (
  name VARCHAR(100) NOT NULL, DEFAULT 'unamed',
  age INT NOT NULL, DEFAULT 99
);
  • 디폴트 값을 선언해주면 NULL값을 허용여부와 관계없이 모든 칼럼에 대한 값이 적절하게 작성되지 않았을때 디폴트 값이 적용된다.

  • 디폴트 값이 없고, NOT NULL인 경우는 모든 칼럼에 대한 데이터가 존재하지 않는 경우 데이터 삽입 시 에러가 발생한다.


데이터베이스에서 테이블을 생성할때 항상 varchar(255)만 썼는데, varchar의 특성상 최대 글자수 제한을 정할 수 있으므로 필요에 따라 적절한 제한을 주는 것이 필요할 것 같다.

그리고, NOT NULL과 DEFAULT 속성을 활용한다면 데이터를 삽입할때, 실수가 발생할 경우 에러 찾는 것이 쉬울 것 같다.

profile
어제보다 나은 오늘을 만드는 중

0개의 댓글