MySQL 8.0 테이블 생성하기 CREATE TABLE

출처 : 나무위키

테이블 생성하기

테이블을 한번 생성해보겠습니다. 

테이블을 생성하기 위해서는 테이블이 들어갈 데이터베이스가 있어야 됩니다. 지난 글에서 MySQL을 설치하고 데이터베이스와 사용자를 만들고 사용자에게 데이터베이스의 사용권한을 만들어주었습니다. 

 

SHOW DATABASES;

현재 ubuntu 서버의 mysql에 있는 데이터베이스의 목록입니다. 지난번 만든 jikun 이라는 데이터베이스가 있고 jikun 데이터베이스 속에다가 테이블을 한번 만들어보겠습니다. 

 

2021.03.20 - [programming/Database] - MySQL 8.0 초기 세팅(root 패스워드 변경, DB 생성, 사용자 추가까지)

 

MySQL 8.0 초기 세팅(root 패스워드 변경, DB 생성, 사용자 추가까지)

얼마전 우분투 21.04 버전에서 MySQL 8.0 버전의 MySQL-SERVER 를 설치했습니다. MySQL을 설치하고 나면 첫 계정의 패스워드는 공백으로 접속이 가능했습니다. root 계정에는 높은 권한을 가지고 있는 계정

swpfun.tistory.com

아직 데이터베이스를 생성하지 않았다면 위에 글을 읽고 데이터베이스를 만들고 따라하시면 됩니다. 

 

데이터베이스 선택

테이블을 만들기 위해서는 어떤 데이터베이스에 테이블을 생성하겠다는 것을 알려주어야 합니다. mysql에서 데이터베이스를 지정해주기 위한 명령어는 use 명령어를 사용합니다. 초기에는 mysql 데이터베이스 상태이기 때문에 자신이 작업하게 될 데이터베이스르 지정해야 합니다. 

use 데이터베이스명;

use 데이터베이스명; 을 입력하고 데이터베이스를 선택해 줍니다. 저는 jikun 이라는 데이터베이스를 만들었고 여기에다가 테이블을 만들고 활동할 것이기 때문에 use jikun; 이라고 입력해 jikun 이라는 DB를 지정하겠습니다. 

 

use jikun; 입력하면 Database changed 가 표시됩니다. 데이터베이스 활동영역이 jikun으로 변경되었고 여기서 생성, 수정, 제거 하는 테이블은 모두 jikun데이터베이스에 속하게 됩니다. 데이터베이스를 여러개 만들었다면 use 명령어를 이용해 데이터베이스를 이동할 수 있습니다. use를 사용하지 않고도 다른 데이터베이스의 테이블을 검색하거나 수정하거나 할 수 있지만 다음에 기회가되면 다루도록 하겠습니다. 

 

테이블 생성하기 (CREATE TABLE)

테이블을 생성하기전에 테이블에 대한 상세한 명세서를 작성하고 테이블을 만드는 것을 추천합니다. 만약 회원을 관리하는 테이블을 만든다고 생각해보면 회원에 필요한 정보는 어떤 것들이 있는지 먼저 테이블로 작성하면서 생각해보는 것 입니다. 

필드명 데이터 형(data type) 비고
아이디 문자(40) 필수입력 / 고유값
비밀번호 문자(40) 필수입력
이름 문자(20) 필수입력
이메일 문자(60) 기본값 없음

아주 간단하게 아이디, 비밀번호, 이름, 이메일 이라는 테이블 명세서를 만들어봤습니다. 

CREATE TABLE 테이블명(
 필드명 데이터형 비고,
 필드명 데이터형 
PRIMARY KEY (필드명)
)

테이블을 만드는 기본 골격입니다. 테이블 명세서를 작성한 뒤에 만들게 되면 테이블을 만들기 더 쉬워지고 테이블에 대한 이해도가 더 높아집니다. 위에서 작성한 테이블 명세서를 가지고 회원테이블을 한번 만들어보겠습니다.

CREATE TABLE MEMBER(
id CHAR(40) NOT NULL,
pwd CHAR(40) NOT NULL,
name CHAR(20) NOT NULL,
email CHAR(60),
PRIMARY KEY(id)
)CHARSET=utf8;

위에서 지정한 테이블 명세서로 만든 MEMBER라는 테이블입니다. id, pwd, name, email은 필드명 뒤에 오는 데이터형은 정수형 또는 문자형 혹은 참거짓형 등등의 데이터형을 지정 할 수 있고 문자형 CHAR에는 데이터의 최대 크기를 지정해줄 수 있습니다. 그 뒤에 오는 NOT NULL은 테이터가 없으면 안된다는 의미이고 이를 지정하지 않은 경우에는 공백의 데이터를 넣더라도 테이블에 입력됩니다. 그외 입력을 안하면 기본값이 입력되는 default 등등 다양한 기능들이 있지만 이것도 추후에 따로 정리하겠습니다. 

 

DESC MEMBER;

MEMBER테이블을 마들었고 테이블이 잘 만들어졌는지 DESC 명령어로 한번 확인해보겠습니다. 

입력한 내용대로 테이블이 잘 만들어진것을 확인 할 수 있네요. 만들어진 테이블에서 id에서만 PRIMARY KEY를 지정하여 key에 PRI라고 표시가 되어있습니다.PRIMARY KEY는 고유키로 테이블에 입력되는 데이터들을 식별 할 수있는 레코드들의 고유한 값입니다. 즉 PRIMARY KEY는 사람으로 치면 지문에 해당됩니다. 사람의 이름, 나이, 키, 몸무게와 같이 똑같은 사람이 있을 수 있지만 지문은 같은사람이 없기때문에 사람에게 있어서 고유한 값이됩니다. 

 

스마트폰의 전화번호 또한 PRIMARY KEY(고유키)로 010-0000-0000 이라는 번호가 고유값이 아니라 중복이 된다면? 010-0000-0000으로 전화를 걸면 해당 전화번호를 가진 모든 사람들에게 전화가 걸리게 될테니 그런 것들을 방지하고 쉽게 식별할수 있도록 하는 기능입니다. 

 

댓글

Designed by JB FACTORY