[MySQL]  MySQL - 테이블 만들기

MySQL - 테이블 생성 알아보기


 

 

 

 

이번 포스팅에서는 테이블 생성 방법에 대해서 알아보도록 하겠습니다.

 

 

 

 

 MySQL - 테이블 만들기

 

 

 

 

 

 

 

 

 

테이블 생성하기에 앞서 먼저 알아보아야 될것이 스키마 입니다

스키마는 데이터베이스의 테이블에 저장될 데이터의 구조와 형식을 정의하는 것입니다

 

즉, 스키마는 데이터의 설계도라고 합니다.

 

그래서, 데이터베이스에 데이터를 아무렇게 넣는것이 아닌 테이블에 어떠한 형식으로 데이터들이 삽입되고 저장될것인지를 미리 사전에 설계해야됩니다

 

 

 

 

 

 

위 그림은 회원정보 데이터를 가지고 있는 테이블을 간단하게 만들어 보았으며, 이제 테이블을 만들어 보도록 하겠습니다

 

 

 

 

 

 

1. member_table - 테이블명

 

 

CREATE TABLE member_table (
 seq        INT NOT NULL AUTO_INCREMENT,
 mb_id     VARCHAR(20),
 mb_pw    VARCHAR(20),
 address   VARCHAR(50),
 mb_tell    VARCHAR(50),  
  PRIMARY KEY(seq)
) ENGINE=MYISAM CHARSET=utf8;

 

 

 

1번째 줄은 테이블 생성 부분입니다

CREATE TABLE 은 기본명령어이고, 사용할 테이블명을 입력하고 ( ) - 소괄호 안에 사용하게될 필드명을 입력합니다.

 

 

 

 

2. seq 컬럼 - 용도 : 자동인덱스 증가

 

CREATE TABLE member_table (
 seq        INT NOT NULL AUTO_INCREMENT,
 mb_id     VARCHAR(20),
 mb_pw    VARCHAR(100),
 address   VARCHAR(100),
 mb_tell    VARCHAR(20),  
  PRIMARY KEY(seq)
) ENGINE= MYISAM CHARSET=utf8;

 

2번째줄 부터는 컬럼을 지정하는 부분입니다

seq로 컬럼의 이름을 입력하고 데이터 타입은 INT NOT NULL 로 중복이 불가능한 숫자형하고 AUTO_INCREMENT 로 자동 증가를 설정합니다.

 

 

 

3. mb_id 컬럼 - 용도 : 회원ID

 

CREATE TABLE member_table (
 seq        INT NOT NULL AUTO_INCREMENT,
 mb_id     VARCHAR(20),
 mb_pw    VARCHAR(100),
 address   VARCHAR(100),
 mb_tell    VARCHAR(20),  
  PRIMARY KEY(seq)
) ENGINE=MYISAM CHARSET=utf8;

 

3번째줄은 mb_id 로 컬럼 이름을 추가하고 데이터 타입은 VARCHAR(20)으로 지정 합니다.

 

 

 

4. mb_pw 컬럼 - 용도 : 패스워드

 

CREATE TABLE member_table (
 seq        INT NOT NULL AUTO_INCREMENT,
 mb_id     VARCHAR(20),
 mb_pw    VARCHAR(100),
 address   VARCHAR(100),
 mb_tell    VARCHAR(20),  
  PRIMARY KEY(seq)
) ENGINE=MYISAM CHARSET=utf8;

 

4번째줄은 mb_pw 로 컬럼 이름을 추가하고 데이터 타입은 VARCHAR(100)으로 지정 합니다.

 

 

 

 

5. address 컬럼 - 용도 : 주소

 

CREATE TABLE member_table (
 seq        INT NOT NULL AUTO_INCREMENT,
 mb_id     VARCHAR(20),
 mb_pw    VARCHAR(100),
 address   VARCHAR(100),
 mb_tell    VARCHAR(20),  
  PRIMARY KEY(seq)
) ENGINE=MYISAM CHARSET=utf8;

 

5번째줄은 address로 컬럼 이름을 추가하고 데이터 타입은 VARCHAR(100)으로 지정합니다.

 

 

 

 

6. mb_tell 컬럼 - 용도 : 연락처

 

CREATE TABLE member_table (
 seq        INT NOT NULL AUTO_INCREMENT,
 mb_id     VARCHAR(20),
 mb_pw    VARCHAR(100),
 address   VARCHAR(100),
 mb_tell    VARCHAR(20),  
  PRIMARY KEY(seq)
) ENGINE=MYISAM CHARSET=utf8;

 

6번째줄은 mb_tell 로 컬럼 이름을 추가하고 데이터 타입은 VARCHAR(100)으로 지정합니다.

 

 

 

 

7. seq - 기본키 지정

 

CREATE TABLE member_table (
 seq        INT NOT NULL AUTO_INCREMENT,
 mb_id     VARCHAR(20),
 mb_pw    VARCHAR(100),
 address   VARCHAR(100),
 mb_tell    VARCHAR(20),  
  PRIMARY KEY(seq)
) ENGINE=MYISAM CHARSET=utf8;

 

7번째줄은 seq 를 기본키로 지정하여 중복이 불가능하게 지정 합니다.

 

 

 

8. ENGINE, CHARSET 설정

 

CREATE TABLE member_table (
 seq        INT NOT NULL AUTO_INCREMENT,
 mb_id     VARCHAR(20),
 mb_pw    VARCHAR(100),
 address   VARCHAR(100),
 mb_tell    VARCHAR(20),  
  PRIMARY KEY(seq)
) ENGINE=MYISAM CHARSET=utf8;

 

8번째줄은 테이블의 ENGINE 과 CHARSET을 지정하는 부분입니다

ENGINE 은 MYISAM으로 지정하였고, CHARSET 은 utf-8로 지정하여 가변폭 방식의 인코딩으로 설정했습니다.

 

 

 

 

 

 

 

 MySQL - 데이터 타입(Data Type) - 자료형

 

 

 

 

 

 

데이터베이스의 테이블 컬럼들을 정의할때 컬럼이 어떠한 형식을 가지고 있고, 어떠한 제약을 가지고 있어야 되는것이 데이터 타입(Data Type) 입니다

 

 

데이터 자료형은 크게 문자형, 숫자형, 날짜형, 선택형으로 나누어 집니다

 

 

1. 문자형 타입

 

보편적으로 많이 쓰이는것은 CHAR(), VARCHAR(), TEXT 입니다

 

데이터 타입

범위

CHAR()

0 ~ 255 고정문자 길이

VARCHAR()

0 ~ 65535 가변 문자 길이

INNYTEXT

0 ~ 255 문자길이

TEXT

0 ~ 65535 문자길이

BLOB

0 ~ 65535 문자길이

MEDIUMTEXT

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

0 ~ 16777215 문자길이

MEDIUMBLOB

0 ~ 16777215 문자길이

LONGTEXT

0 ~ 4294967295 문자길이

LONGBLOB

0 ~ 4294967295 문자길이

 

 

CHAR() - 고정 문자일때 사용됩니다

- char(10)을 지정하면 10개(10Byte)의  데이터를 입력할 수 있습니다.

- (char(10) 지정후 데이터를 5Byte를 입력해도 데이터 공간은 10Byte로 자료형 크기만큼 데이터 공간을 차지하게 됩니다)

 

VARCHAR() - 가변 문자일대 사용됩니다

- VARCHAR(10)을 지정하면 10개(10Byte)의  데이터를 입력할 수 있습니다.

(varchar(10) 지정후 데이터를 5Byte를 입력시 데이터 공간은 5Byte로 데이터 크기만큼 차지하게 됩니다)

 

CHAR(), VARCHAR() 차이점

- char은 검색이나 성능이 뛰어나 정형화 일때 사용되며, varchar는 가변적일때 사용됩니다.

 

 

TEXT

- text는 자연어 검색이 가능하게 하는것으로 용량이 많이 사용하게 될때 사용됩니다.

 

 

용도 :

CHAR - 전화번호 같이 정형화 되어 있는것으로 사용됩니다

 

VARCHAR - 게시판 제목 같이 가변적일때 사용됩니다

 

TEXT - 게시판의 내용 같이 내용이 많을때 사용됩니다

 

 

 

2. 숫자형 타입

 

데이터 타입

크기

최소값

최대값

INT

4Byte

-2147483648 ~ 2147483647

0 ~ 4294967295

TINYNT

1Byte

-128 ~ 127

0 ~ 255 정수형, UNSIGNED

FLOAT

4Byte

-3.402823466×1038 ~ 3.402823466×1038

DOUBLE

8Byte 

-1.7976931348623157×10308 ~ 1.7976931348623157×10308 

 

 

숫자형은 사용할수 있는 범위가 정해져 잇으며, 부호가 있고 없고에 따라서 범위가 틀려지게되니 범위에 맞게 사용하셔야 합니다.

 

 

 

 

3. 날짜형 타입

 

데이터 타입

크기

최소값

DATE

3Byte

YYYY-MM-DD

DATETIME

8Byte

YYYY-MM-DD HH:MM:SS

TIMESTAMP

4Byte

YYYYMMDDHHMMSS

TIME

3Byte

HH:MM:SS

 

 

 

표기방법

출력결과

년도

Y(4자리)

2017, 2018, 2019, ...

y(2자리)

17, 18, 19, ...

M

Janeary, February, March, ...

1, 2, 3, ... 

Jan, Feb, Mar, ...

요일

W

Sunday, Monday, ...

a

Sun, Tue, ...

H

19, 20, 21, ...

h

07, 08, 09, ... 

s

51, 52, 53, ...

 

 

날짜형은 Y(년도), M(월), D(일), S(초) 로 포멧형식에 따라 표기방식이 달라집니다.

 

 

DATE - 날짜정보

      포멧형식 : YYYY-MM-DD

  ex) : 2019-09-01

     -  년, 월 일 형태로 표현할때 사용됩니다.

 

DATETIME    - 날짜/시간 정보

포멧형식 : YYYY-MM-DD

  ex) : 2019-09-01 20:30:59

     -  년, 월, 일, 시, 분 형태로 표현할때 사용됩니다.

 

TIMESTAMP    - 날짜/시간 정보

포멧형식 : YYYY-MM-DD

  ex) : 2019-09-01- 20:30:59

     - 실행 조건의 따라 다양하게 사용할수 있으며, 변경시 자동으로 날짜와 시간이 변경되는 설정도 가능합니다.

 

TIME    - 시간 정보

포멧형식 : HH:MM:SS

  ex) : 20:30:59

     -  시, 분, 초 형태로 표현할때 사용합니다.

 

[출처] https://server-talk.tistory.com/279

 

 

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
공지 오라클 기본 샘플 데이터베이스 졸리운_곰 2014.01.02 25085
공지 [SQL컨셉] 서적 "SQL컨셉"의 샘플 데이타 베이스 SAMPLE DATABASE of ORACLE 가을의 곰을... 2013.02.10 24564
공지 [G_SQL] Sample Database 가을의 곰을... 2012.05.20 25944
1045 [MySQL] 트리거 (종류, 사용법, 삭제, 예제) 졸리운_곰 2023.07.19 24
1044 [MySQL] 트리거(Trigger)의 활용 file 졸리운_곰 2023.07.19 16
1043 [MySQL] 트리거(Trigger)란? 트리거 사용 예제 file 졸리운_곰 2023.07.19 104
1042 [AutoML][AutoKeras] [OSS] AutoKeras로 자동학습(AutoML) 하기 file 졸리운_곰 2023.07.02 12
1041 [NoSQL][MongoDB] Truncate a collection 졸리운_곰 2023.06.04 12
1040 [Tensorflow 2.0] 모델 저장하고 불러오기 졸리운_곰 2023.05.21 29
1039 [pytorch] Pytorch에서 학습한 모델 저장 및 불러오기 졸리운_곰 2023.05.21 11
» [MySQL] MySQL - 테이블 만들기 file 졸리운_곰 2023.05.13 29
1037 [R library] library(XML) # install.packages("XML") 인스톨 에러 졸리운_곰 2023.05.06 18
1036 [MySQL] MySQL Strict mode 끄기/켜기 졸리운_곰 2023.05.05 21
1035 [R 데이터 분석] Titanic: Machine Learning from Disaster (타이타닉 생존 예측) file 졸리운_곰 2023.04.29 55
1034 [R 데이터 분석] R 유명한 패키지 정리 졸리운_곰 2023.04.24 76
1033 [NoSQL] MongoDB 인증 모드 (password) 설정 졸리운_곰 2023.03.26 35
1032 [MySQL] [MySQL] 테이블 구조와 데이터 복사 (Table Structure and Data Copy) 졸리운_곰 2023.03.20 24
1031 [R 데이터 분석] Shiny : 대시보드 배포하기 file 졸리운_곰 2023.03.19 76
1030 [데이터 수집 및 전처리] (놀라운) 한글 데이터 짱! AwesomeKorean_Data file 졸리운_곰 2023.03.07 37
1029 [pytorch] Using BERT with Pytorch file 졸리운_곰 2023.03.06 28
1028 [pytorch] Full NMT model from pretrained BERT file 졸리운_곰 2023.03.06 16
1027 [기계학습][딥러닝] PyTorch Hello World 졸리운_곰 2023.02.12 23
1026 [PostgreSQL] 열을 행으로 전환 쿼리 졸리운_곰 2023.01.29 61
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED