2. DBMS이야기/02. MySQL

[MYSQL] 데이터 타입

OSSW(Open Source System SoftWare 2014. 6. 30. 22:41

* 숫자형
- 참 값
@ TINYINT(1) , SMALLINT(2) , MEDIUMINT(3) , INT(4) , BIGINT(8)
@ DECIMAL (가변 크기) - [ 바이트 단위로 2진수 데이터 저장 ]
Ex) DECIMAL(12) => 0001 0010
Ex) 실수 저장 :: DECIMAL(5,3)

- 근사 값 [ equal 을 통한 비교 불가능 ]
@ FLOAT(4) , DOUBLE(8)


Ex)
create table test01(name char(5), score int, fscore, float); [ 해당 정보의 테이블 생성 ]

insert into test01 values('aaa' , 34 , 12.34); [ 데이터 삽입 ]

alter table test01 modify fscore decimal(5,1) [ fscore를소수점1자리를 가지는 변수데이터로 변경 ]

select * from test01; => fscore 12.34 => 12.3 으로 변경된것을 확인. 반올림한 데이터가 반영 됨을 알수 있음.

insert into test01 values('aaa' , 34, 12.34); [ 데이터 삽입 ]

alter table test01 modify score tinyint(5); [ 5자리 형식의 tinyInt형 데이터로 변경]
=> tinyint 는 1바이트 이므로 최대 255까지 표현 가능.
=> 결과 : score 34

alter table test01 modify score tinyint(5) zerofill; :: [ score 데이터의 빈자리를 0으로 채움 ]
=> 결과 : score : 00034



* 텍스트 비교
insert into test01 values(' aaa' , 34, 12.34); [ 데이터 삽입 ]
insert into test01 values('aaa ' , 34, 12.34); [ 데이터 삽입 ]
insert into test01 values(' aaa ' , 34, 12.34); [ 데이터 삽입 ]

select 'aaa '='aaa ';
=> 결과 : 1 (TRUE)

select ' aaa'='aaa ';
=> 결과 : 0 ( FALSE )

select 'aaa ' like 'aaa ';
= > 0

select 'aaa ' like 'aaa%';
=> 1 [ % 위치에 있는 데이터는 무시 ];
Ex) select ' aaa ' like 'aaa%'; => 0
select ' aaa ' like '%aaa%'; => 1 [aaa 앞에 공백문자 부분은 제외 -> 특정단어(aaa)를 찾을때 사용 ]

 

by 추연경