programing

MySQL의 BIT와 TINYINT의 차이점은 무엇입니까?

goodjava 2022. 12. 20. 21:16

MySQL의 BIT와 TINYINT의 차이점은 무엇입니까?

어떤 경우에 어떤 것을 사용하시겠습니까?차이가 많이 나나요?불란을 저장하는 데 주로 사용하는 것은 무엇입니까?

TINYINT는 8비트 정수값이며, BIT 필드에는 1비트 BIT(1)와 64비트 BIT(64) 사이의 값을 저장할 수 있습니다.부울값의 경우 BIT(1)는 매우 일반적입니다.

숫자 유형의 개요에서

비트[(M)]

비트필드 타입M은 값당 비트 수를 나타냅니다(1 ~64 ) 。M을 생략하면 기본값은 1입니다.

이 데이터 유형은 MyISAM용 MySQL 5.0.3에서 추가되었으며 5.0.5에서는 MEMORY, InnoDB, BDB 및 NDBCluster로 확장되었습니다.5.0.3 이전 버전에서는 BIT는 TINYINT(1)의 동의어입니다.

타이닌트[(M)] [서명 없음][ZEROFILL

아주 작은 정수입니다.부호 있는 범위는 -128 ~127입니다부호 없는 범위는 0 ~255입니다

또한 이 점을 고려해 주십시오.

BOOL, 부울

이러한 유형은 TINYINT(1)의 동의어입니다.값이 0이면 false로 간주됩니다.0이 아닌 값은 true로 간주됩니다.

이러한 이론적인 논의는 모두 훌륭하지만, 적어도 MySQL을 사용하는 경우나 SQL Server를 사용하는 경우에도 데이터를 출력하거나 쿼리할 때 쉽게 작업할 수 있는 간단한 이유 때문에 2진수 이외의 데이터를 사용하는 것이 가장 좋습니다.MySQL과 SQL Server 간의 상호 운용성(즉, 데이터를 동기화하는 것)을 실현하려고 하는 경우, BIT 데이터형의 처리는 각각 다르기 때문에 특히 중요합니다.따라서 실제로 숫자 데이터 유형을 계속 사용하면 번거로움이 훨씬 줄어듭니다.MySQL은 TINYINT(1)로 저장되는 BOOL이나 BOUAL을 고수하는 것을 추천합니다.MySQL Workbench와 MySQL Administrator가 BIT 데이터 유형을 표시하는 방식도 좋지 않습니다(바이너리 데이터의 작은 기호).그러니 현실적이고 귀찮은 일은 피하세요(불행하게도 저는 경험에서 말하고 있습니다).

BIT는 0과 1만 허용해야 합니다(필드가 NOT NULL로 정의되지 않은 경우에는 NULL).TINYINT(1)는 1바이트에 저장할 수 있는 모든 값 -128을 허용합니다.127 또는 0..255는 부호 없음 여부에 따라 달라집니다(1은 1자리 숫자만 사용하지만 더 큰 값을 저장할 수 있음을 나타냄).

5.0.3 이전 버전에서는 BIT는 TINYINT(1)로 해석되므로 차이가 없습니다.

BIT에는 "이것이 부울" 시멘틱이 있으며 일부 앱은 (MySQL이 처리하던 방식으로) TINYINT(1)를 동일하게 간주하므로 앱이 유형을 확인하고 그에 따라 형식을 결정할 경우 열을 확인란으로 포맷할 수 있습니다.

틀릴 수도 있지만:

Tinyint는 0에서 255 사이의 정수입니다.

비트는 1 또는0 중 하나입니다.

그러므로 내게는 비트는 불란을 위한 선택이다.

지금까지의 경험상, BIT는 Linux OS 타입(ex의 경우 Ubuntu)에 문제가 있다고 말하고 있습니다.Windows에서 db를 개발했습니다.Linux에서 모든 것을 전개한 후 BIT DATA TYPE을 가진 테이블에 삽입 또는 선택한 쿼리에 문제가 있었습니다.

비트는 지금 안전하지 않다.나는 tinyint로 바꾸고 완벽하게 일했다.즉, 값이 1인지 0인지 tinyint(1)인지 구별하는 데만 필요합니다.

언급URL : https://stackoverflow.com/questions/290223/what-is-the-difference-between-bit-and-tinyint-in-mysql