Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL에서 CHAR()의 역함수는 무엇일까? ASCII()와 ORD() 완벽 정리

MySQL에서 CHAR()의 역함수는 무엇일까?

MySQL에서 CHAR() 함수의 반대 기능을 수행하는 함수는 바로 ASCII()ORD()입니다. 두 함수는 비슷해 보이지만 약간의 차이가 있습니다.

  • ASCII(): 문자열에서 가장 왼쪽 문자의 숫자 값(ASCII 코드)을 반환합니다.
  • ORD(): 인수로 전달된 문자열에서 가장 왼쪽 문자의 문자 코드를 반환합니다.

실제 예제를 통해 두 함수의 동작 방식을 확인해 보겠습니다.

1. 테이블 생성하기

먼저 아래와 같이 테스트용 테이블을 생성합니다.

mysql> create table DemoTable
(
    Value int,
    Value1 char(1),
    Value2 char(1)
);
Query OK, 0 rows affected (0.80 sec)

2. 레코드 삽입하기

INSERT 명령을 사용해 몇 개의 레코드를 추가합니다.

mysql> insert into DemoTable values(65,'A','A');
Query OK, 1 row affected (0.18 sec)
mysql> insert into DemoTable values(97,'a','a');
Query OK, 1 row affected (0.13 sec)

3. 저장된 데이터 확인하기

SELECT 문으로 테이블의 모든 레코드를 조회합니다.

mysql> select *from DemoTable;

실행 결과는 다음과 같습니다.

+-------+--------+--------+
| Value | Value1 | Value2 |
+-------+--------+--------+
|    65 |      A |      A |
|    97 |      a |      a |
+-------+--------+--------+
2 rows in set (0.00 sec)

4. ASCII()와 ORD() 함수 적용하기

이제 CHAR(), ASCII(), ORD() 함수를 함께 사용하여 결과를 비교해 보겠습니다.

mysql> select char(Value),ASCII(Value1),ORD(Value2) from DemoTable;

실행 결과는 다음과 같습니다.

+-------------+---------------+-------------+
| char(Value) | ASCII(Value1) | ORD(Value2) |
+-------------+---------------+-------------+
| A           |            65 |          65 |
| a           |            97 |          97 |
+-------------+---------------+-------------+
2 rows in set (0.03 sec)

결과 분석

위 결과를 보면 다음과 같은 사실을 알 수 있습니다.

  • char(Value): 숫자 값 65와 97을 각각 문자 'A'와 'a'로 변환했습니다.
  • ASCII(Value1): 문자 'A'와 'a'의 ASCII 코드인 65와 97을 반환했습니다.
  • ORD(Value2): 마찬가지로 문자 'A'와 'a'의 문자 코드인 65와 97을 반환했습니다.

즉, 일반적인 영문자의 경우 ASCII()와 ORD()는 동일한 값을 반환하지만, 멀티바이트 문자를 다룰 때는 첫 번째 바이트만 처리한다는 점에서 차이가 있을 수 있습니다. CHAR() 함수로 변환한 문자를 다시 숫자 코드로 되돌리고 싶다면 이 두 함수를 상황에 맞게 활용하면 됩니다.