MySQL에서 열(column)의 모든 값에 대한 문자 길이를 확인하려면 CHAR_LENGTH() 함수를 사용하면 됩니다. 이 함수는 문자열이 몇 개의 문자로 이루어져 있는지를 반환하며, 한글이나 특수문자도 각각 1개의 문자로 계산합니다.
아래 예제를 통해 실제 사용 방법을 단계별로 살펴보겠습니다.
1단계: 테이블 생성
먼저 테이블을 생성합니다.
mysql> create table DemoTable
-> (
-> Name varchar(100)
-> );
Query OK, 0 rows affected (1.04 sec)2단계: 데이터 삽입
INSERT 명령어를 사용해 테이블에 레코드를 추가합니다.
mysql> insert into DemoTable values('John');
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable values('Robert');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable values('Bob');
Query OK, 1 row affected (0.20 sec)
mysql> insert into DemoTable values('David');
Query OK, 1 row affected (0.15 sec)3단계: 전체 레코드 조회
SELECT 문으로 테이블의 모든 레코드를 확인합니다.
mysql> select *from DemoTable;
출력 결과
+--------+ | Name | +--------+ | John | | Robert | | Bob | | David | +--------+ 4 rows in set (0.00 sec)
4단계: CHAR_LENGTH()로 문자 길이 조회
이제 CHAR_LENGTH() 함수를 사용하여 Name 열의 각 값에 대한 문자 길이를 조회합니다.
mysql> select char_length(Name) from DemoTable;
출력 결과
+-------------------+ | char_length(Name) | +-------------------+ | 4 | | 6 | | 3 | | 5 | +-------------------+ 4 rows in set (0.00 sec)
출력 결과를 보면 'John'은 4, 'Robert'는 6, 'Bob'은 3, 'David'는 5로 각 이름의 실제 문자 수가 정확히 반환된 것을 확인할 수 있습니다.
참고: CHAR_LENGTH()와 LENGTH()의 차이
MySQL에는 비슷한 기능의 LENGTH() 함수도 있습니다. 두 함수의 차이는 다음과 같습니다.
- CHAR_LENGTH(): 문자 개수를 기준으로 길이를 반환합니다. 멀티바이트 문자(한글, 일본어 등)도 1로 계산합니다.
- LENGTH(): 바이트 수를 기준으로 길이를 반환합니다. UTF-8 환경에서 한글은 한 글자당 3바이트로 계산됩니다.
따라서 영문 데이터만 다룬다면 두 함수의 결과가 같지만, 한글 등 멀티바이트 문자가 포함된 데이터라면 목적에 맞게 함수를 선택하는 것이 중요합니다.