Posts MySQL 기초(4)
Post
Cancel

MySQL 기초(4)

1. Data Type


1.1 Numeric

1.1.1 정수 타입 (Integer type)

  • MySQL은 SQL 표준정수 유형 및 SMALLINT, 표준 확장의 형태로서, 정수 유형을 지원함

  • 아래는 각 정수 유형에 필요한 스토리지 및 범위임

TypeStorage (Bytes)Minimum Value SignedMinimum Value UnsignedMaximum Value SigendMaximum Value Unsigned
TINYINT1-1280127255
SMALLINT2-3276803276765535
MEDIUMINT3-83886080838860716777215
INT4-2147483648021474836474294967295
BIGINT8-2^6302^63 -12^64 -1


1.1.2 고정 소수점 타입 (Fixed-Point-Types)

DECIMAL(M, D)
  • M : 소수점을 포함한 전체 자리수
  • D : 소수 부분자리수


1
2
ALTER TABLE user1 
ADD COLUMN deci DECIMAL(5,2)
  • user1 테이블에 DECIMAL 데이터 타입인 deci 컬럼을 추가

  • DECIMAL(5, 2) : -999.99 ~ 999.99 까지 저장됨


1.1.3 실수(Floating-Point Types)

  • 소수점을 나타내기 위한 데이터 타입으로 Flaot과 Double의 두가지 데이터 타입이 있음
  • 두가지의 데이터 타입은 저장공간의 차이가 있음
    • Float : 4byte
    • Double : 8byte


1
2
FLOAT(M,D)
DOUBLE(M,D)
  • 고정 소수점 타입으로 사용 가능


1.1.4 비트 값 타입 (Bit Value Type)

1
BIT(M)
  • 0과 1로 구성되는 2진수(Binary) 데이터를 나타냄


1
BIT(5)
  • 00000(2) ~ 11111(2) 까지 표현


1.2 Date & Time

Data Type‘Zero’ Value
Date‘0000-00-00’
Time‘00:00:00’
Datetime‘0000-00-00 00:00:00’
Timestamp‘0000-00-00 00:00:00’
Year‘0000’


1.2.1 Date

  • 날짜를 저장하는 데이터 타입
  • 기본포멧은 ‘년-월-일’


1.2.2 Time

  • 시간을 저장하는 데이터 타입
  • 기본포멧은 ‘시:분:초’


1.2.3 Datetime

  • 날짜와 시간을 저장하는 데이터 타입
  • 기본포멧은 ‘년-월-일 시:분:초’


1.2.4 Timestamp

  • 날짜와 시간을 저장하는 데이터 타입
  • Datetime과 다른점은 날짜를 입력하지 않으면 현재 날짜와 시간을 자동으로 저장할수 있는 특징이 있음


1.2.5 Year

  • 연도를 저장할수 있는 데이터 타입
1
2
YEAR(2)
YEAR(4)
  • Year(2) : 2자리의 연도를 저장
  • Year(4) : 4자리의 연도를 저장


1.3 String

  • Char : 고정 길이 문자열
  • Varchar : 가변 길이 문자열
  • Binary : Char이지만 바이너리 데이터를 가짐
  • Varvinary : Varchar이지만 바이너리 데이터를 가짐
  • Blob : 65535 byte를 Binary데이터에 유용, 기본값을 가질수 없음
  • Text : Varchar와 비슷하지만 기본 값을 가질수 없으며, 크기가 큰 문자열을 저장할때 사용함
  • Enum : 컬럼에 들어올수 있는 값을 지정해 줄수 있음, 데이터 용량을 적게 차지함
  • Set : Enum처럼 컬럼에 들어올수 있는 값을 지정해 줄수 있으나 다른점은 Set은 여러개씩 선택이 가능함


1.3.1 Char & Varchar

  • Char와 Varchar의 차이는 고정길이인가 가변길이인가의 차이다.


ValueCHAR(4)Storage RequiredVarchar(4)Storage Required
’’‘  ’4bytes’’1bytes
‘ab’‘ab ’4bytes‘ab’3bytes
‘abcd’‘abcd’4bytes‘abcd’5bytes
‘abcdefgh’‘abcd’4bytes‘abcd’5bytes
  • Char : 고정길이문자열로 입력되는 데이터의 크기가 작던 크던 선언한 크기 만큼 저장되며, 저장공간도 동일하게 사용, 선언한 크기보다 작은 데이터가 들어오면 남은 크기 만큼 공백으로 저장됨
  • Varchar : 가변길이문자열로 입력되는 데이터의 크기에 따라 저장되는 공간 및 데이터가 다름
  • 만일 모든 데이터의 크기가 비슷하다면 Char가 더 효율적이다 (byte 때문)


1.3.2 Text

  • Char와 Varchar는 대체로 크기가 작은 문자열을 저장할때 사용되지만, 크기가 큰 문자열을 저장할때는 Text를 사용함


2. 제약조건(Constraint)


2.1 제약조건(Constraint)

  • 데이터 베이스의 테이블을 생성할때 각 컬럼은 각각의 제약조건을 가질수 있음
  • 컬럼의 규칙이라고 생각하면 됨


2.2 Not Null

  • Not Null 제약 조건이 있는 컬럼에 Null(비어있는 값)을 저장할수 없음


2.3 Unique

  • Unique 제약 조건이 있는 컬럼에 같은 값을 저장할수 없음, 중복 불가


2.4 Primary Key

  • Not Null과 Unique의 제약조건을 동시에 만족함
  • 하나의 테이블에 하나의 컬럼만 조건을 설정할수 있음


2.5 Foreign Key

  • 외래키로, 다른 테이블과 연결되는 값이 저장됨
  • 사원id 등


2.6 Default

  • 데이터를 저정할때 해당 컬럼에 별도의 저장값이 없으면 Default로 설정된 값이 저장됨


2.7 Auto_Increment

  • 자동으로 숫자를 1씩 증가시켜주는 기능
  • 주로 테이블의 Primary key 데이터를 저장할때 사용함
This post is licensed under CC BY 4.0 by the author.