[SQL] 데이터 타입에 대해 알아보자 (수정중)

YS_Study.log·2022년 12월 14일
0
post-custom-banner

테이블을 생성할떄 컬럼에 들어갈 데이터에 대한 제약조건을 걸었었는데, 그 안에서 컬럼에 들어갈 자료형도 지정 할 수 있다.
어떤 자료형이 있는지 간단히 알아보자

데이터 형식/자료형

(컴퓨터는 모든 데이터를 0과 1로 인식하는 것을 다시 상기하기)

테이블의 각 컬럼(열 데이터)들마다 어떤 자료형이 들어갈 것인지 명시해야(숫자인지, 문자인지 등), 정확한 데이터가 입력될 수 있기 때문에 오류를 방지할 수 있어 테이블을 생성할 때 자료형을 입력해준다.
ex) 이름을 넣는데 숫자가 들어오면 안되니깐 문자만 들어올수 있게 지정해주는 것이다.

숫자 자료형

정수형

소수점이 없는 숫자, 인원수,가격,수량 등에 많이 사용된다.
데이터 용량에 따라 숫자 데이터 크기를 설정한다.

  • 가장 작은 데이터는 TINYINT => 가장 큰 데이터는 BIGINT 순 이다.
  • SIGNED : 음수부터 양수까지 사용한다.
  • UNSIGNED : 무조건 정수만 사용한다.
자료형바이트범위UNSIGNED
TINYINT1-128 ~ 1270 ~ 255
SMALLINT2-32,768 ~ 32,7670 ~ 65,535
INT4약 -21억 ~ +21억0 ~ 42억
BIGINT8약 -900경 ~ +900경0~1800경

MEDIUMIN는 잘 사용 X
|MEDIUMINT|3|-8,388,608 ~ 8,388,607|0 ~ 16,777,215|

create table type1 (
tinyint_col tinyint,
smallint_col smallint,
int_col int,
bigint_col bigint
);

INSERT INTO type1 VALUES(127, 32767, 2147483647, 9000000000000000000);

  • 데이터 범위를 넘었을 경우 입력 /추가 X
    INSERT INTO type1 VALUES(128, 32768, 2147483648, 90000000000000000000);
    Error Code: 1264. Out of range value for column 'tinyint_col' at row 1

실수형

고정 소수점(Fixed Point) 수

좁은 범위의 수 표현이 가능하고, 정확한 값

자료형설명범위
DECIMAL( s, d )실수 부분 총 자릿수( s ) & 소수 부분 자릿수 ( d )s 최대 65

부동 소수점(Floating Point) 수

소수점 아래를 어디까지 표현하는지 차이, FLOAT를 많이 사용함. 과학 데이터가 아닌이상!
넓은 범위의 수 표현 가능하다.

데이터 형식바이트 수범위
FLOAT4소수점 아래 7자리 까지 표현
DOUBLE8소수점 아래 15자리까지 표현

문자형

  • 문자, 글자를 저장하기 위해 사용하는 데이터 차입이다.

문자열

  • 자료형(s) : (s)조건은 해당 컬럼(열 데이터)에 몇글자를 쓸 것인지 숫자 S로 최대 개수 제한둔다.
자료형설명차지하는 바이트최대 바이트
CHAR(s)고정 사이즈(남는 글자 공백(스페이스)으로 채우는 것)s(고정값)255
VARCHAR(s)가변 사이즈실제 글자수[최대값 s] +1 [글자수정보]65,535

주의

  • 검색시 CHAR가 더 빠르다.
    (하지만? 무조건 좋은 것은 아닌데, 이유 : 비어있는 공간만큼 공백채워서 byte를 쓰기 때문에 쓸데없는 데이터를 더 쓸 가능성 이있다.)
  • VARCHAR 컬럼 길이 값이 4글자 보다 적을 경우 => CHAR로 자동 변한된다.
  • char : 검색 빠름, 속도면에서 좋다.
    - 문자 크기/길이 고정된 것
  • varchar : 공간 효율적 사용
    - 문자 크기/길이가 가변적일 경우
  • 전화번호는 -하이픈 문자가 쓰이는 경우가 있어서 char, varchar 문자형으로 사용한다.
  • 하이픈을 제외하고 저장하더라도 숫자의 의미가 없다. 연산/ 크다작다 의미가 없음!

대량 문자형 데이터 형식

텍스트

문자열보다 더 긴 문자의 텍스트를 작성하는 컬럼(열 데이터)일 경우 사용한다. (ex) 게시판의 글)

자료형최대 바이트 크기
TEXT1~65,535
LONGTEXT1~ 4,294,967,295 약 42억자
BLOB1~65535
LONGBLOB1~4,294,967,295 약 42억

|TINYTEXT| 1~255|
|MEDIUMTEXT|1~ 16,777,215|
잘 사용 X

시간 자료형

  • DATE : 날짜 - 연,월,일
  • TUME : 시간 - 시,분,초
  • DATETIME : 날짜 및 시간저장, 시간 데이터를 가감없이 기록할 경우 사용
  • TIMESTAMP : 시간 자동기록, 국제적인 서비스를 할 경우사용
자료형형식설명
DATEYYYY-MM-DD
TIMEHH:MI:SSHHH: -838 ~ 838까지의 시간
DATETIMEYYYY-MM-DD HH:MI:SS내가 입력한, 입력된 시간을 그 값 자체로 저장(어디서든 동일한 값)
TIMESTAMPYYYY-MM-DD HH:MI:SSMySQL이 설치된 컴퓨터의 시간대를 기준으로 저장, 각 국가의 시간대마다 달라짐
profile
느리지만 조금씩 공부하는 중 입니다. 현재 1년 6개월차 신입입니다 ><!
post-custom-banner

0개의 댓글