안녕하세요. 뉴핀입니다.
이번 포스팅에서는 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 이런 형태로 말이죠.
많은 프로젝트를 통해 데이터베이스를 사용하다 보면 점점 자신만의 규칙과 편한 점을 찾게 되실 거예요. 많은 개발자분들이 공유해주는 지켜야 할 점과 좋은 팁들을 모아서 자신만의 개발 규칙을 만들어 보면 좋을 것 같습니다. 이번 포스팅에서는 제가 생각하는 정말 기본적으로 초보 개발자분들이 지켰으면 하는 유의사항들을 같이 소개했습니다. 많은 분들의 팁과 노하우도 공유할 수 있는 공간이 있었으면 좋겠습니다. 다양한 다른 의견이 있다면 저에게도 알려주세요. 감사합니다!!
'Programming > DB' 카테고리의 다른 글
DBeaver 설치 및 원격 MariaDB SSH 연결(Mac) (0) | 2022.09.07 |
---|---|
Mysql - Insert, Select, Update, Delete 명령어 (0) | 2022.08.15 |
댓글