비트 필드 표기법(Bit-field notation)은 MySQL에서 비트 필드 값을 직접 작성할 수 있게 해주는 특수한 표기 방식입니다. 주로 BIT 타입 컬럼에 값을 할당할 때 유용하게 사용됩니다.
비트 필드 표기법의 문법
비트 필드 표기법은 다음 두 가지 형태로 작성할 수 있습니다.
b'value'
또는
0bvalue
여기서 value는 0과 1로만 구성된 이진수(binary) 값입니다. 예를 들어 b'1010' 또는 0b1010처럼 표기하며, 두 방식은 완전히 동일한 의미를 가집니다.
비트 필드 표기법의 주요 용도
비트 필드 표기법은 MySQL 테이블의 BIT 컬럼에 저장할 값을 지정할 때 특히 편리합니다. 일반적인 숫자 리터럴 대신 이진수를 그대로 표현할 수 있어, 비트 단위 데이터를 다루는 코드의 가독성과 명확성이 크게 향상됩니다.
실제 사용 예제
아래 예제는 BIT(8) 타입의 컬럼을 가진 테이블을 생성하고, 비트 필드 표기법으로 값을 삽입하는 과정을 보여줍니다.
mysql> CREATE TABLE bit_testing (bittest BIT(8));
Query OK, 0 rows affected (1.09 sec)
mysql> INSERT INTO bit_testing SET bittest = b'10101010';
Query OK, 1 row affected (0.07 sec)
mysql> INSERT INTO bit_testing SET bittest = b'0101';
Query OK, 1 row affected (0.13 sec)
mysql> INSERT INTO bit_testing SET bittest = 0b0101;
Query OK, 1 row affected (0.10 sec)
위 예제에서 볼 수 있듯이, b'10101010', b'0101', 0b0101 세 가지 방식 모두 정상적으로 값이 삽입됩니다. 즉, 작은따옴표를 사용하는 b'' 형식과 접두사 방식인 0b 형식 중 어느 것을 선택해도 결과는 같습니다.
참고 사항
- 지정된 비트 길이가 컬럼의 크기를 초과하면 오류가 발생합니다. 예를 들어
BIT(4)컬럼에b'10101010'(8비트)을 넣으면 에러가 납니다. BIT컬럼에 저장된 값을 조회하면 기본적으로 바이너리 형태로 출력되므로, 확인하려면bittest+0처럼 숫자로 변환하거나BIN(),HEX()함수를 활용하는 것이 좋습니다.