MySQL [MySQL] MySQL - 테이블 만들기

2023.05.13 18:30

졸리운_곰 조회 수:1247

[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 87324
공지 [SQL컨셉] 서적 "SQL컨셉"의 샘플 데이타 베이스 SAMPLE DATABASE of ORACLE 가을의 곰을... 2013.02.10 79492
공지 [G_SQL] Sample Database 가을의 곰을... 2012.05.20 96187
101 [NoSQL] 성공적인 NoSQL 도입을 위한 키포인트 : NoSQL 데이터 모델링 file 졸리운_곰 2024.08.10 1083
100 [NoSQL] [MongoDB] NOSQL 데이터 모델링 기법 살펴보기 file 졸리운_곰 2024.08.09 1006
99 [NoSQL][MongoDB] Truncate a collection 졸리운_곰 2023.06.04 1274
98 [NoSQL] MongoDB 인증 모드 (password) 설정 졸리운_곰 2023.03.26 1424
97 [NoSQL] [Redis] Redis Persistence(영속성) 졸리운_곰 2021.04.11 1648
96 [NoSQL] [Cloud] Redis 설치, 사용 방법, 데이터 백업을 위한 RDB & AOF 개념 및 간단한 Redis 사용 사례 연구 file 졸리운_곰 2021.04.11 1720
95 [mongodb , 몽고디비] How to Use MongoDB Comparison Query Operators in Java 졸리운_곰 2021.02.19 1512
94 [mongodb, 몽고디비] How do you query for “is not null” in Mongo? 졸리운_곰 2021.02.19 1275
93 [MongoDB] 확장 검색 쿼리 - Aggregation 파이프라인 스테이지(Pipline Stage)와 표현식 졸리운_곰 2021.02.16 1192
92 [MongoDB] 확장 검색 쿼리 - 범용 Aggregation 졸리운_곰 2021.02.16 1356
91 [MongoDB] 확장 검색 쿼리 - Aggregation의 목적 및 작동방식 file 졸리운_곰 2021.02.16 1074
90 [MongoDB] 확장 검색 쿼리 - 집계 파이프 라인연산자 종류 졸리운_곰 2021.02.16 1143
89 [MongoDB] 확장 검색 쿼리 - Aggregation 파이프라인 스테이지(Pipline Stage)와 표현식 졸리운_곰 2021.02.16 1303
88 [mongodb, 몽고디비 쿼리] Mongodb query on substring of a field 졸리운_곰 2021.02.16 1308
87 [mongodb]Spring boot와 mongoDB 연동하기 그리고 REST API 졸리운_곰 2021.01.21 1709
86 [WebApp / Express] 간단한 MongoDB Middleware 만들기 졸리운_곰 2020.12.29 1155
85 [mongodb] Error: network error while attempting to run command 'isMaster' on host '127.0.0.1:27017' file 졸리운_곰 2020.12.16 1450
84 [mongodb] How to Update a Document in MongoDB using Java 졸리운_곰 2020.12.14 2341
83 [Java, MongoDB] Mapping a BSON MongoDB document to a MyClass.class object? 졸리운_곰 2020.12.09 1823
82 [mongodb] MongoDB CRUD 동작의 이해 졸리운_곰 2020.12.07 1306
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED