OS
2014.08.28 21:20
[SQL] mysql 에서 bigint(20), int(11) 의 의미
조회 수 87012 추천 수 0 댓글 0
mysql 에서 bigint 는 8바이트(64비트) 정수값이고, int 는 4바이트(32비트) 정수값이다.
그런데 뒤에 붙는 숫자값은 무슨 의미일까?
메뉴얼에서 보면 이 값은 zerofill 자리수를 의미하지, 저장될 숫자의 자리수를 의미하지 않는다.
일반적으로 DBMS 에서 이들 숫자값은 저장될 숫자의 크기를 의미하는데
mysql 에서는 단순히 결과값을 출력할 때, 숫자를 출력할 때 앞에 0을 채울 때 몇개를 채울지 hint 로 사용된다.
CREATE TABLE foo ( bar INT(20) ZEROFILL );
INSERT INTO foo (bar) VALUES (1234);
SELECT bar from foo;
+----------------------+
| bar |
+----------------------+
| 00000000000000001234 |
+----------------------+
실제로 bigint(5), int(2) 타입에 큰 값을 저장해도 잘 저장된다.
CREATE TABLE foo(bar1 BIGINT(5), bar2 INT(2));
INSERT INTO foo(bar1, bar2) VALUES (555555555, 22222222);
SELECT * FROM foo;
+-----------+----------+
| bar1 | bar2 |
+-----------+----------+
| 555555555 | 22222222 |
+-----------+----------+
http://netmaid.tistory.com/42