목록전체 글 (202)
hmk run dev
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/oSlST/btrlpdj7w5w/dKVvSBJCtu1DLgYOK1nZqK/img.jpg)
char사용을 지양하고 varchar를 이용하라는 이야기를 들었다. 고정길이로 설정해도 괜찮을 것 까지 모두 varchar로 설정하라는데 의구심이 들어 char와 varchar의 차이점에 대해 좀 더 심도 있게 알아보고자 한다. CHAR 고정길이 문자열 타입으로 만약 타입의 크기만큼의 데이터가 들어오지 않은경우 이후의 공간을 스페이스로 채워넣습니다. 고정길이 문자열이기 때문에 헤더에는 레코드의 길이에 대한 정보가 들어있지 않습니다. . VARCHAR 가변길이 문자열 타입으로 타입의 크기만큼의 데이터가 들어오지 않더라도 이후의 공간을 스페이스로 채워넣지 않습니다. 가변길이 문자열이기 때문에 헤더에는 레코드의 길이에 대한 정보가 포함되어야 합니다. CHAR(5) & VARCHAR(5) 데이터가 들어오는 경우..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/EhLve/btrlmm2qWqG/mI7wsjcN4ODn1yriBWdD9K/img.png)
데이터베이스를 구축하다보면 텍스트 데이터(Text Data)를 취급해야 할 때가 있다. 이때 반드시 고민해야 하는 것이 있는데, 바로 문자셋(character set)을 선택하는 것이다. 실생활의 대부분의 데이터는 텍스트기반(text-centric)이다. 당연히 실생활의 모든 텍스트 데이터를 저장할 수 있는 자료형이 필요로 하게 되었다. 이것을 위해서 나온 charset이 UTF-8 이다. UTF-8 문자 집합은 1~4 바이트까지 저장이 가능하게 설계되었다. (알파벳 1byte, 한글 3byte) MySQL/MariaDB 에서도 UTF-8 을 지원한다. 이때! 간과한 사실이 있는데, 전세계 모든 언어가 21bit (3바이트가 조금 안됨)에 저장되기 때문에 MYSQL 에서 utf8 을 3바이트 가변 자료형..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bvFWUd/btrliUZhsE7/8D4toYbyi0vWFJBjz26tI0/img.png)
CHAR & VARCHAR & TEXT CHAR : 고정 길이 문자열 정보 - s는 기본 길이 1바이트, 최대 길이 Oracle 2000바이트 SQL Server 8000바이트 - s만큼 최대 길이를 갖고 고정 길이를 가지고 있으므로 할당도니 변수 값의 길이가 s보다 작을 경우에는 그 차이 길이만큼 공간으로 채워진다. (남는 공간은 공백으로 채우게 된다.) VARCHAR : CHARACTER VARYING의 약자로 가변 길이 문자열 정보 ( 데이터 길이 상한치 4000 ) (Oracle은 VARCHAR2 로 표현, SQL Server는 VARCHAR로 표현) - s는 최소 길이 1바이트, 최대 길이 Oracle 4000바이트, SQL Server 8000 바이트 - s만큼의 최대 길이를 갖지만 가변 길이..