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

NOT NULL 제약 조건이 있는 MySQL 테이블의 문자 유형 열에 NULL 키워드를 값으로 삽입하는 방법은 무엇입니까?

<시간/>

NULL은 그 자체로 값이기 때문에 NOT NULL 제약 조건이 있는 문자 유형 열에 NULL 키워드를 값으로 삽입하는 것은 상당히 가능합니다. 다음 예는 그것을 보여줄 것입니다 -

예시

NOT NULL 제약 조건과 함께 문자 유형 열 'Name'이 있는 테이블 test2가 있다고 가정합니다. 다음과 같이 DESCRIBE 문에서 확인할 수 있습니다. -

mysql> Describe test2\G
*************************** 1. row ***************************
  Field: id
   Type: int(11)
   Null: NO
    Key:
Default: NULL
  Extra:
*************************** 2. row ***************************
  Field: NAME
   Type: varchar(20)
   Null: NO
    Key:
Default: NULL
  Extra:
2 rows in set (0.03 sec) 

이제 다음 쿼리를 사용하여 'Name' 열에 값으로 NULL을 삽입할 수 있습니다.

mysql> Insert into test2 values(2, 'NULL');
Query OK, 1 row affected (0.06 sec)

mysql> select * from test2;
+----+--------+
| id | NAME   |
+----+--------+
|  1 | Gaurav |
|  2 | NULL   |
+----+--------+
2 rows in set (0.00 sec) 

'NULL'과 '값으로서의 NULL'의 차이점을 이해하기 위해 다음 두 쿼리를 실행할 수 있습니다.

mysql> delete from test2 where name IS NULL;
Query OK, 0 rows affected (0.00 sec) 

위의 쿼리는 0 행에 영향을 미치므로 NULL 행이 없음을 의미합니다. SELECT 쿼리에서 삭제된 행이 없는지 확인할 수 있습니다.

mysql> select * from test2;
+----+--------+
| id | NAME   |
+----+--------+
|  1 | Gaurav |
|  2 | NULL   |
+----+--------+
2 rows in set (0.00 sec)

mysql> delete from test2 where name = 'NULL';
Query OK, 1 row affected (0.09 sec) 

위 쿼리는 1행에 영향을 미치며, 이는 값으로 NULL을 갖는 행이 있음을 의미합니다. 'NAME' 컬럼의 값이 NULL인 행이 삭제되었음을 SELECT 쿼리에서 확인할 수 있다.

mysql> select * from test2;
+----+--------+
| id | NAME   |
+----+--------+
|  1 | Gaurav |
+----+--------+
1 row in set (0.00 sec)