2017-05-08 2 views
-3

VARCHAR와 INTEGER 유형의 차이점에 대해 궁금합니다.정수와 varchar의 MySQL 차이점

예를 들어 사용자의 나이를 저장하고 싶습니다. 그러나 어떻게? 이것은 중요합니까, 정수, tinyint 또는 varchar입니까?

또한 사용자의 성별은 여성의 경우 0, 남성의 경우 1 일 수 있습니다.

나이와 성별을 'tinyint'로 저장합니까?이 좋은 접근입니까?

+0

'정수'는 숫자를 나타내고, 'varchar'는 숫자, 문자 및 기타 문자를 나타냅니다 (짧은 텍스트). 그래서 시대에 당신은'int' 타입을 사용할 수 있습니다. 두가지 옵션 만 있다면'enum()'타입을 사용할 수 있습니다. – Jer

+1

Varchar는 텍스트이고 정수는 숫자입니다. 사용자의 연령대 텍스트 또는 숫자입니까? – JJJ

+0

[데이터 형식에 대한 MySQL 설명서 페이지] (https://dev.mysql.com/doc/refman/5.7/en/data-types.html)를 읽었습니까? 귀하의 질문에 대한 답변이 있습니다. – axiac

답변

2

여기에 명확하게 많은 것들이 ...

  • VARCHAR 텍스트를 저장하는 것입니다.
  • INTEGER
  • 은 (소수점와 가수와 숫자)이 아닌 정수에 관해서는 반대의 정수 번호,

당신이 필드에 저장할 값의 유형과 일치해야 선택하는 데이터 유형을 저장하는 것입니다. 여기에는 여러 가지 이유가 있습니다. 주된 이유는 저장 공간과 숫자에 대한 계산 능력입니다.

연령은 분명히 항상 숫자이므로 INTEGER을 사용해야합니다.

메모리 나 디스크 드라이브에서 차지하는 공간을 특징으로하는 여러 종류의 숫자 및 텍스트 필드가 있습니다. 특히 데이터가 많은 경우 올바른 유형을 선택하는 것이 중요합니다. 당신의 테이블에 100 개의 레코드가있는 것은 그리 중요하지 않습니다. 10 억 개의 기록으로 절대적으로 필수적입니다. 그러나 좋은 프로그래머/디자이너는 항상 염두에 두어야하며 항상 성능과 비용면에서 독창적 인 생각을합니다.

DataType Range 
TINYINT  -128 to 127 
SMALLINT -32768 to 32767 
MEDIUMINT -8388608 to 8388607 
INT   -2147483648 to 2147483647 
BIGINT  -9223372036854775808 to 9223372036854775807 

당신은 인간의 나이를 저장하는 경우는, 기회는 당신이 그렇게 TINYINT이 허용 127 세 이상 가지 않을 것이다, 그러나 단지가 될 것을 높다 :

정수를 들어

, 당신은 사이에 선택할 수 있습니다 물론 SMALLINT을 가져 가세요.

가능한 경우 언제든지 생년월일을 저장하는 것이 더 좋으므로 언제든지 정확하게 연령을 계산할 수 있습니다. 나이를 저장하는 경우 1 년 동안 만 유효하며 "동적"이 아닙니다. 당신의 성별

, 당신은 기본적으로이 개 방법이 있습니다

  • 저장 위치로 CHAR(1) (한 문자) 값 'M'과 예를 들어 'F'를 가진.
  • 여러분이했던 것처럼 TINYINT으로 저장하면 부울 (true 또는 false - 1 또는 0)으로 작동하며 남성이 true이고 여성이 false이거나 반대 인 경우를 정의하고 어디서나 동일한 구성표를 적용해야합니다. 귀하의 신청서에

데이터베이스를 올바르게 디자인하려면 the documentation을 실제로 공부해야합니다.

관련 문제