본문 바로가기
Programming/DB

Mysql - 데이터베이스와 테이블 생성하기!

by 해도 Haedo 2022. 9. 30.

안녕하세요. 뉴핀입니다.

이번 포스팅에서는 Mysql에서 데이터베이스를 생성하고 테이블을 만들시에 고려할 사항들에 대해서 알아보겠습니다.

 

1. 데이터베이스 만들기

Mysql에서 데이터베이스를 생성할 때 명령어는 CREATE DATABASE입니다.

CREATE DATABASE 데이터베이스명;

NUFYN이라는 데이터베이스를 만들었습니다.

 

 

2. 테이블 만들기

테이블을 만들기 전에 방금 만든 NUFYN 데이터베이스가 잘 있는지 확인을 해봅시다.
데이터베이스 목록을 볼 때는 SHOW DATABASES 명령어를 사용합니다.

SHOW DATABASES;

NUFYN 데이터베이스가 생성된 걸 확인할 수 있습니다.

NUFYN 데이터베이스에 테이블을 생성하려면 먼저 NUFYN 데이터베이스를 사용하게 해야 합니다.
(Mysql에서 각 유저들은 여러 개의 데이터베이스를 사용할 수 있습니다.)
USE 데이터베이스명;  명령어를 통하여 데이터베이스를 사용할 수 있게 됩니다. 저는 USE NUFYN;이라고 해주었습니다.

 

NUFYN 데이터베이스에 NufynUser 테이블을 만들어보겠습니다.

 

CREATE TABLE NufynUser(                              
  user_ai INT(11) NOT NULL AUTO_INCREMENT,            
  user_name VARCHAR(255) NOT NULL,                         
  user_age INT(11) NOT NULL,
  user_phone VARCHAR(255) NOT NULL,
  create_time datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  CONSTRAINT NufynUser_PK PRIMARY KEY(user_ai)             
);


먼저 위의 예시 코드 설명드리고 실제로 테이블이 만들어지는지 확인해보겠습니다.

CREATE TABLE 명령어 뒤에 테이블의 이름을 입력합니다.

소괄호를 열고 컬럼 이름, 데이터 자료형, NULL 여부 순으로 입력을 하면 됩니다. 만약 Default값을 주고 싶다면 DEFAULT라고 적고 그 뒤에 빈 값일 때 자동으로 입력되게끔 하는 값을 입력해주면 됩니다.

마지막 줄에 CONTSTRAINT 제약조건을 뜻합니다. Mysql에서 제약조건으로는 NOT NULL, UNIQUE, PRIMARY_KEY, FOREIGN_KEY, DEFAULT를 줄 수 있습니다. 제약조건에 대해서 따로 다음번에 포스팅하도록 하겠습니다. 간략하게 PRIMARY_KEY만 설명하자면 테이블 내에서 중복되지 않는 값을 가진 존재입니다. 해당 데이터의 유일성을 보장해주는 존재로 원하는 데이터를 쉽게 찾을 수 있게 해 주는데 도움이 됩니다.

 

만들어진 테이블을 확인해보겠습니다.

DESCRIBE 테이블명; 을 입력하게 되면 테이블의 정보를 볼 수 있습니다.

각 컬럼 별로 입력해준 자료형 타입과, NOT NULL, 제약조건, Default값, auto_increment가 잘 적용된 걸 볼 수 있습니다.

auto_increment는 새로운 데이터가 추가될 때마다 자동으로 이전 데이터보다 +1된 값이 들어갑니다.

CURRENT_TIMESTAMP는 데이터가 입력될 시 자동으로 현재시간을 데이터에 입력하게 해주는 함수입니다.

 

3. 유의사항

처음 데이터베이스와 테이블을 만드는 초보 개발자라면 아직 무슨 말인지 이해가 안 될 수 있을 거 같습니다. 몇 번만 연습해보면 쉽게 감이 오실 것 같습니다. 

데이터베이스와 테이블을 만들 때 유의사항과 도움이 될 만한 을 몇 가지 알려드리겠습니다.

     1. 올바른 자료형을 사용하자

데이터 자료형을 선택할 때 표현할 수 있는 타입 중에 최대한 작고 단순한 타입을 선택하는 게 좋습니다. 데이터 타입이 작고 단순할수록 CPU가 적은 공간을 사용하고 디스크 메모리를 적게 사용하여 많은 양의 데이터를 저장하고 처리가 빨라집니다. 데이터 양이 많아지면 자료형 하나로 엄청난 속도 차이를 느낄 수 있게 됩니다. 
당연히 정수, 실수, 문자열 등의 입력하려는 데이터의 타입도 잘 고려해야 합니다.

     2. PRIMARY_KEY는 최대한 auto_increment를 사용하자

Mysql의 최대 장점 중 하나는 auto_increment를 지원하는 점이라고 생각합니다. PRIMARY_KEY를 사용해서 원하는 데이터를 찾으려고 할 때 auto_increment를 통해 작은 값으로 세팅해둔다면 성능에 훨씬 도움이 됩니다. INSERT 할 때 값이 중복되지 않으니깐 문제가 문제 발생률도 줄 일 수 있고요.

 

     3. 종류별로 이름의 규칙을 정하자

데이터베이스의 이름, 테이블의 이름, 컬럼의 이름을 지을 때 자신만의 규칙이 있어야 나중에 편할 거예요. 저는 예전에 모든 이름을 소문자로 지었는데 점점 테이블과 컬럼들이 많아지니깐 쿼리문을 작성할 때 많이 헷갈리더라고요.
저는 데이터베이스는 모두 대문자 / 테이블 이름은 단어의 앞글자만 대문자 / 컬럼은 모두 소문자와 _ 를 사용하고 있어요.
데이터베이스는 NUFYN, 테이블은 NufynUser, 컬럼은 user_ai 이런 형태로 말이죠.

 

많은 프로젝트를 통해 데이터베이스를 사용하다 보면 점점 자신만의 규칙과 편한 점을 찾게 되실 거예요. 많은 개발자분들이 공유해주는 지켜야 할 점과 좋은 팁들을 모아서 자신만의 개발 규칙을 만들어 보면 좋을 것 같습니다. 이번 포스팅에서는 제가 생각하는 정말 기본적으로 초보 개발자분들이 지켰으면 하는 유의사항들을 같이 소개했습니다. 많은 분들의 팁과 노하우도 공유할 수 있는 공간이 있었으면 좋겠습니다. 다양한 다른 의견이 있다면 저에게도 알려주세요. 감사합니다!!

댓글