더북(TheBook)

created_at에는 DEFAULT now()라는 옵션이 붙어 있습니다. 데이터베이스 저장 시 해당 컬럼에 값이 없을 때 MySQL이 기본값을 대신 넣습니다. now()는 현재 시각을 넣으라는 뜻입니다. now() 대신 CURRENT_TIMESTAMP를 적어도 같은 뜻이 됩니다. 사용자 정보를 넣으면 created_at 컬럼에는 넣는 순간의 시각이 자동으로 기록됩니다.

해당 컬럼이 기본 키인 경우에 PRIMARY KEY 옵션을 설정합니다. 기본 키란 로우를 대표하는 고유한 값을 의미합니다. 데이터베이스에 데이터를 넣을 때 로우 단위로 넣습니다. 이때 로우들을 구별할 고유한 식별자가 필요합니다. 이름, 나이, 결혼 여부 컬럼은 다른 사람과 내용이 겹칠 수 있습니다. 자기소개는 내용을 입력하지 않아도 되므로 고유하지 않습니다. 따라서 id라는 새로운 컬럼을 하나 만들어 고유한 번호를 부여한 것입니다. 주민등록번호나 학번과 비슷한 개념입니다. MySQL에는 PRIMARY KEY(id)라는 옵션으로 id 컬럼이 기본 키임을 알렸습니다.

UNIQUE INDEX는 해당 값이 고유해야 하는지에 대한 옵션이며, name 컬럼이 해당됩니다. 인덱스의 이름은 name_UNIQUE로, name 컬럼을 오름차순(ASC)으로 기억하겠다는 것입니다. 내림차순은 DESC입니다. PRIMARY KEYUNIQUE INDEX의 경우에는 데이터베이스가 별도로 컬럼을 관리하므로 조회 시 속도가 빨라집니다. 기본 키인 id도 사실 고유해야 하지만, PRIMARY KEY는 자동으로 UNIQUE INDEX를 포함하므로 따로 적지 않아도 됩니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.