Blob 데이터를 MySQL의 텍스트 형식으로 변환
-
MySQL의
BLOB
데이터 유형 - MySQL에서 데이터베이스 생성
-
CONVERT()
함수를 사용하여 MySQL에서 Blob 데이터를 텍스트로 변환 -
CAST()
함수를 사용하여 MySQL에서 Blob 데이터를 텍스트로 변환
이 기사는 MySQL 데이터베이스의 BLOB
데이터 유형에 중점을 둘 것입니다. BLOB
데이터 유형에 대해 자세히 알아보고 다양한 유형에 대해 논의합니다.
문서 뒷부분에서 Blob 필드의 데이터를 이진이 아닌 형식으로 변환하는 다양한 방법을 검토합니다.
MySQL의 BLOB
데이터 유형
대형 이진 객체(BLOB
)는 다양한 범위의 정보를 포함할 수 있습니다. 파일 또는 이미지의 바이너리 저장소를 제공하는 MySQL의 일종의 데이터 유형입니다.
TINYBLOB
, BLOB
, MEDIUMBLOB
및 LONGBLOB
의 네 가지 종류가 있습니다.
네 가지 범주 간의 주요 차이점은 저장할 수 있는 데이터의 양입니다. LONGBLOB
은 이름에서 알 수 있듯이 가장 많은 데이터를 보유할 수 있는 반면 TINYBLOB
은 가장 적은 데이터를 보유할 수 있습니다.
BLOB
값은 이진 문자열(바이트 문자열)처럼 처리됩니다. 이진 문자 집합, 데이터 정렬, 비교 및 정렬은 열 값에 있는 바이트의 숫자 값을 사용하여 수행됩니다.
TINYBLOB
은 최대 255바이트를 저장할 수 있습니다.BLOB
는 최대 65535바이트, 즉 64KB의 데이터를 저장할 수 있습니다.MEDIUMBLOB
은 최대 16777215바이트, 즉 16MB의 데이터를 저장할 수 있습니다.LONGBLOB
은 최대 4294967295바이트, 즉 4GB의 데이터를 저장할 수 있습니다.
MySQL에서 데이터베이스 생성
MYSQL에서 데이터베이스를 생성하여 시작하겠습니다. 이 기사 전체에서 MySQL Shell을 사용하여 데이터베이스와 상호 작용할 것입니다.
집중하고 단계를 따라 명확하게 이해하십시오.
이 화면은 MySQL Shell을 처음 시작할 때 나타납니다. JS가 MySQL로 작성되었음을 알 수 있습니다. 이는 현재 JavaScript 처리 모드에 있음을 나타냅니다.
SQL 문을 실행하려면 명령을 실행하기 전에 먼저 SQL 모드로 전환해야 합니다.
이렇게 하려면 \sql
을 입력하고 Enter를 누르십시오.
이제 SQL 모드가 활성화됩니다. 이제 셸을 MySQL 서버와 연결해야 합니다. 그런 다음 SQL 명령을 작성하고 실행할 수 있습니다.
연결을 위해 \connect root@localhost
를 작성하고 Enter를 누릅니다. 여기서 root
는 MySQL Shell을 설치하는 동안 설정한 사용자 이름입니다.
Enter를 누르면 설치 중에 입력한 비밀번호를 묻습니다. 암호를 입력하면 연결이 활성화됩니다.
콘솔에 기록된 메시지를 관찰하십시오. 선택된 데이터베이스가 없음을 나타냅니다.
사용할 것을 만들어 봅시다. 데이터베이스를 생성하려면 create database tech
라고 쓰십시오. 여기서 tech
는 데이터베이스 이름입니다.
어떤 이름을 선택하든 자유롭게 사용할 수 있습니다. 데이터베이스를 만든 후 사용할 데이터베이스 Shell을 지정해야 합니다.
데이터베이스를 선택하려면 use tech
명령을 입력하십시오.
이제 tech
가 SQL
앞에 쓰여진 것을 볼 수 있습니다. 즉, 현재 기술 데이터베이스에 있으며 직접 쿼리를 실행할 수 있습니다.
BLOB
데이터 유형의 일부 필드를 사용하여 tech
데이터베이스에 테이블을 생성해 보겠습니다. 테이블을 만들려면 셸에 다음 명령을 입력합니다.
CREATE TABLE BLOB_DEMO
(
FIRST_NAME VARCHAR(20),
LAST_NAME VARCHAR(20),
AGE INT,
DESCRIPTION BLOB
);
테이블이 생성됩니다. Description
필드의 데이터 유형을 BLOB
로 지정했습니다.
MySQL Shell에서 작업할 때 일부 텍스트를 삽입하여 BLOB
데이터 유형의 동작을 관찰합니다. 테이블에 데이터를 삽입하려면 셸에서 다음 명령을 입력합니다.
INSERT INTO BLOB_DEMO VALUES
(
"WILLIAM",
"JOHN",
27,
"William John is a computer scientist."
),
(
"BEN",
"MARK",
32,
"Ben is a doctor. He lives in America."
);
이제 데이터가 테이블에 삽입됩니다. 테이블에서 모든 행을 가져오겠습니다.
테이블에서 모든 데이터를 검색하려면 셸에서 다음 명령을 작성합니다.
SELECT * FROM BLOB_DEMO
출력:
DESCRIPTION
열을 관찰하십시오. 위에서 논의한 것처럼 BLOB
데이터 유형의 동작은 이진 문자열과 같은 데이터를 처리하고 여기서 보는 것은 이진 인코딩 데이터입니다.
이제 초점은 텍스트 또는 바이너리가 아닌 형식으로 실제 읽을 수 있는 데이터를 검색하는 방법입니다. MySQL은 이 작업을 수행하기 위한 두 가지 방법을 제공했습니다.
아래에서 자세히 살펴보겠습니다.
CONVERT()
함수를 사용하여 MySQL에서 Blob 데이터를 텍스트로 변환
MySQL은 값을 특정 유형으로 변환하는 CONVERT()
함수를 제공합니다. 서로 다른 문자 집합 간에 데이터를 변환합니다.
CONVERT()
함수의 구문은 다음과 같습니다.
CONVERT(expr USING transcoding_name)
```.
`expr`이 NULL이면 함수는 NULL을 반환합니다.
설명 필드의 데이터를 이진 형식이 아닌 형식으로 가져오려면 셸에 다음 명령을 입력합니다.
```sql
SELECT CONVERT(DESCRIPTION USING UTF8) FROM BLOB_DEMO
출력:
여기서 한 가지 눈에 띄는 점은 Shell에서 제공하는 경고입니다. 향후 릴리스에서 UTF8
은 UTFMB4
의 별칭이 됩니다.
UTFMB4
를 모호하지 않게 사용하는 것이 좋습니다.
CAST()
함수를 사용하여 MySQL에서 Blob 데이터를 텍스트로 변환
MySQL은 값을 특정 유형으로 변환하는 CAST()
라는 또 다른 함수를 제공합니다.
CAST()
함수의 구문은 다음과 같습니다.
CAST(expression as type)
CAST()
함수는 모든 표현식을 원하는 유형의 값으로 변환합니다.
이진이 아닌 형식으로 설명 필드에서 데이터를 가져오려면 셸에서 다음 명령을 입력합니다.
SELECT CAST(DESCRIPTION AS CHAR(10000) CHARACTER SET UTFMB4) FROM BLOB_DEMO
출력: