비트 연산이란?
정수를 2진수(bit) 단위로 쪼개서 연산하는 것
비트 연산자
** SQL에서는 변환할 정수를 2진수로 바꾸지 않고도 비트 연산자를 사용할 수 있다.
1. AND (`&`)
: 둘다 1이면 1
-- 5 = 0101 (2진수)
-- 3 = 0011 (2진수)
SELECT 5 & 3; -- 1
0101 & 0011 → 0001 (1)
2. OR(`|`)
: 하나라도 1이면 1
SELECT 5 | 3; -- 7
0101 | 0011 → 0111 (7)
3. XOR(`^`)
: 서로 다르면 1, 같으면 0
SELECT 5 ^ 3; --6
0101 ^ 0011 → 110 (6)
4. NOT(`~`)
: 0이면 1을, 1이면 0으로 정반대
SELECT ~5; -- 2
SELECT ~3; -- 4
~0101 → 10 (2)
~0011 → 100 (4)
CONV() 함수
CONV(데이터, 원래 진법, 바꿀 진법)
: 숫자의 진법을 변환해주는 함수
- 2진수 ~ 36진수 내에서 범용적으로 사용 가능하다
- 반환 타입이 '문자열'임을 주의하자!
예제
1. 10진수 ↔ 2진수
SELECT CONV(10, 10, 2); -- 1010
SELECT CONV('1010', 2, 10); -- 10
** 10진수 → 2진수 = `BIN()`
2. 10진수 ↔ 16진수
SELECT CONV(255, 10, 16); -- ff
SELECT CONV('ff', 16, 10); -- 255
** 10진수 → 16진수 = `HEX()`
'Database > SQL' 카테고리의 다른 글
| [MySQL] SELECT절 조건문 (CASE WHEN, IF, IFNULL, ISNULL, COALESCE) (0) | 2026.02.07 |
|---|---|
| [MySQL] 정규 표현식과 REGEXP (0) | 2026.02.06 |
| [SQL] MySQL Workbench로 개체(Entity) 간 연관관계 파악을 위한 ERD 생성하기 (0) | 2024.03.14 |
| [MySQL] Workbench에서 캐글(Kaggle) 데이터 불러와서 실습해보기 (0) | 2024.03.11 |
| [MySQL] 두번째 단계, MacOS에서 MySQL Workbench 설치하기 (1) | 2024.03.10 |