> 데이터 베이스 > MySQL 튜토리얼 > MySQL에 NULL 또는 빈 문자열을 삽입하는 것이 더 낫습니까?

MySQL에 NULL 또는 빈 문자열을 삽입하는 것이 더 낫습니까?

PHPz
풀어 주다: 2023-08-25 23:17:13
앞으로
1557명이 탐색했습니다.

MySQL에 NULL 또는 빈 문자열을 삽입하는 것이 더 낫습니까?

innoDB에서 NULL은 빈 문자열보다 공간을 덜 차지합니다. 또한 NULL 길이는 다음과 같습니다. null이고 빈 문자열의 길이는 0입니다.

이를 이해하려면 아래와 같이 create 명령을 사용하여 테이블을 생성하십시오. -

mysql> CREATE table DemoEmptyAndNULL
-> (
-> Message varchar(100)
-> );
Query OK, 0 rows affected (0.49 sec)
로그인 후 복사

테이블이 성공적으로 생성된 후, 다음 명령어를 통해 빈 레코드를 테이블에 삽입합니다. 다음과 같은 insert 명령 -

mysql> INSERT into DemoEmptyAndNULL values(' ');
Query OK, 1 row affected (0.17 sec)
로그인 후 복사

기록을 삽입한 후 select 명령을 사용하면 모든 기록을 표시할 수 있습니다. -

mysql> SELECT * from DemoEmptyAndNULL;
로그인 후 복사

위 쿼리를 실행하면 다음과 같은 결과가 출력됩니다. -

+---------+
| Message |
+---------+
|         |
+---------+
1 row in set (0.00 sec)
로그인 후 복사

내장 함수 count를 이용하여 빈 문자열의 길이를 확인하는 구문은 다음과 같습니다. Follow-

select count(column_name) from yourTableName;
로그인 후 복사

위 구문은 다음과 같이 주어진 빈 문자열의 길이를 구하는 데 사용됩니다-

mysql> select count(message) from DemoEmptyAndNULL;
로그인 후 복사

위 쿼리를 실행한 후 출력은 다음과 같습니다-

+----------------+
| count(message) |
+----------------+
| 1              |
+----------------+
1 row in set (0.06 sec)
로그인 후 복사

위 출력에서 빈 문자를 지우십시오. 문자열의 길이는 1입니다.

이제 NULL의 길이를 확인해 보겠습니다. 먼저, 테이블에 삽입된 레코드는 다음과 같습니다. 아래와 같이 delete 명령을 사용하여 삭제-

mysql> delete from DemoEmptyAndNULL where message=' ';
Query OK, 1 row affected (0.19 sec)
로그인 후 복사

현재 테이블에 레코드가 없는지 확인하는 쿼리는 다음과 같습니다

mysql> SELECT * from DemoEmptyAndNULL;
Empty set (0.00 sec)
로그인 후 복사

이제 아래와 같이 null 값을 갖는 레코드가 테이블에 삽입됩니다-

mysql> INSERT into DemoEmptyAndNULL values();
Query OK, 1 row affected (0.18 sec)
로그인 후 복사

해당 레코드는 다음과 같습니다. select 명령을 사용하여 표시되고 얻은 출력은 다음과 같습니다.

+---------+
| Message |
+---------+
| NULL    |
+---------+
1 row in set (0.00 sec)
로그인 후 복사

이제 테이블에는 null 값이 있는 레코드가 하나만 있습니다. 길이를 찾으려면 다음 쿼리를 실행하십시오. -

mysql> select count(message) from DemoEmptyAndNULL;
로그인 후 복사

를 사용하면 다음은 위 쿼리의 출력입니다. -

+----------------+
| count(message) |
+----------------+
| 0              |
+----------------+
1 row in set (0.00 sec)
로그인 후 복사

위 출력은 count가 0(null 값)임을 의미합니다.

MySQL 버전을 확인해 보겠습니다.

mysql> select version();
+-----------+
| version() |
+-----------+
| 8.0.12    |
+-----------+
1 row in set (0.06 sec)
로그인 후 복사

따라서 NULL 값을 허용하면 시스템이 이를 수행하도록 강제하므로 데이터베이스는 빈 문자열을 사용하는 것이 더 좋습니다. 추가 작업이 필요하며 원하는 데이터를 제공하지 않습니다. 그러나 NULL은 발생하지 않습니다. count() 함수 실행 중 예외가 발생합니다.

위 내용은 MySQL에 NULL 또는 빈 문자열을 삽입하는 것이 더 낫습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:tutorialspoint.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿