Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

MySQL이 바이너리 데이터를 제대로 삽입하지 않습니까? 어떤 데이터 유형을 사용해야 합니까?

<시간/>

이를 위해 BIT 데이터 유형을 사용합니다. 먼저 테이블을 생성하겠습니다 -

mysql> create table DemoTable(binaryValue BIT(5));
Query OK, 0 rows affected (0.83 sec)

삽입 명령을 사용하여 테이블에 일부 레코드 삽입 -

mysql> insert into DemoTable values(10);
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable values(15);
Query OK, 1 row affected (0.15 sec)

select 문을 사용하여 테이블의 모든 레코드 표시 -

mysql> select *from DemoTable;

그러면 다음과 같은 출력이 생성됩니다. 이제 기록이 보이지 않는 것을 볼 수 있습니다 -

+-------------+
| binaryValue |
+-------------+
|             |
|             |
+-------------+
2 rows in set (0.00 sec)

위의 레코드(이진 데이터)를 표시하려면 bin() −

를 사용해야 합니다.
mysql> select bin(binaryValue) from DemoTable;

그러면 다음과 같은 출력이 생성됩니다.>

+------------------+
| bin(binaryValue) |
+------------------+
| 1010             |
| 1111             |
+------------------+
2 rows in set (0.00 sec)

이제 다른 예를 살펴보겠습니다.

다음은 바이너리 데이터를 삽입하는 쿼리이지만 select를 사용하면 값이 보이지 않습니다 -

mysql> insert into DemoTable VALUES (b'1010'),(b'1111');
Query OK, 2 rows affected (0.52 sec)
Records: 2 Duplicates: 0 Warnings: 0
mysql> select *from DemoTable;
+-------------+
| binaryValue |
+-------------+
|             |
|             |              
|             |
|             |
+-------------+
4 rows in set (0.00 sec)

테이블 레코드를 다시 한 번 확인하고 bin()을 사용하여 -

를 표시합니다.
mysql> select bin(binaryValue) from DemoTable;

이것은 다음과 같은 출력을 생성합니다 -

+------------------+
| bin(binaryValue) |
+------------------+
| 1010             |
| 1111             |
| 1010             |
| 1111             |
+------------------+
4 rows in set (0.00 sec)