MySQL에서 비트 연산자는 이진수 형태의 데이터에 대해 각 비트 단위로 연산을 수행하는 데 사용됩니다. 비트 연산자는 주로 숫자 데이터에서 비트별 조작이 필요할 때 사용됩니다. MySQL에서는 여러 비트 연산자를 제공하며, 주로 AND, OR, XOR, NOT 등의 연산을 수행할 수 있습니다.
비트 연산자 사용 예시
비트 AND는 두 값의 대응하는 비트가 모두 1일 때만 결과 비트가 1이 됩니다.
SELECT 6 & 3; -- 결과: 2
비트 OR는 두 값의 대응하는 비트 중 하나라도 1이면 결과 비트가 1이 됩니다.
SELECT 6 | 3; -- 결과: 7
비트 XOR는 두 값의 대응하는 비트가 다를 때만 결과 비트가 1이 됩니다.
SELECT 6 ^ 3; -- 결과: 5
비트 NOT는 숫자의 각 비트를 반전시킵니다. 1은 0으로, 0은 1로 바뀝니다.
SELECT ~6; -- 결과: -7
비트 왼쪽 시프트는 숫자의 비트를 왼쪽으로 이동시키고, 오른쪽에는 0이 채워집니다.
SELECT 3 << 2; -- 결과: 12
비트 오른쪽 시프트는 숫자의 비트를 오른쪽으로 이동시키고, 왼쪽에는 0이 채워집니다.
SELECT 12 >> 2; -- 결과: 3
비트 연산자는 보통 다음과 같은 경우에 유용하게 사용됩니다.
여러 플래그를 하나의 정수로 저장하고 비트 연산을 통해 특정 플래그가 활성화되어 있는지 확인할 수 있습니다.
-- 플래그 값 1: 읽기 권한, 2: 쓰기 권한, 4: 실행 권한
SELECT 5 & 1 AS '읽기 권한', 5 & 2 AS '쓰기 권한', 5 & 4 AS '실행 권한';
5의 이진수: 101 (읽기 권한과 실행 권한이 활성화되어 있음)
결과: 읽기 권한 = 1, 쓰기 권한 = 0, 실행 권한 = 1
요약
비트 연산자는 숫자의 각 비트를 조작하는 데 사용됩니다.
주요 연산자로는 비트 AND(&), 비트 OR(|), 비트 XOR(^), 비트 NOT(~), 비트 시프트 연산(<<, >>)이 있습니다.
이 연산자는 플래그 값 처리, 권한 관리, 효율적인 데이터 저장 등에 유용하게 사용됩니다.