MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

NOT NULL制約のあるMySQLテーブルの文字型列に値としてNULLキーワードを挿入するにはどうすればよいですか?


NULLはそれ自体が値であるため、NOTNULL制約のある文字型列に値としてNULLキーワードを挿入することは十分に可能です。次の例はそれを示します-

文字タイプ列「Name」とNOTNULL制約を持つテーブル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) 

これで、次のクエリを使用して、「名前」列の値として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」の違いを理解するために、次の2つのクエリを実行できます-

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を持つ行があることを意味します。 SELECTクエリから、「NAME」列の値がNULLである行が削除されていることを確認できます。

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

  1. MySQLのタイプとしてchar(2)を使用してデータベースフィールドにNULL値を挿入しますか?

    最初にテーブルを作成しましょう- mysql> create table DemoTable658(FirstName varchar(100),value char(2)); Query OK, 0 rows affected (0.95 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable658(FirstName) values('John') ; Query OK, 1 row affected (0.19 sec) mysql> insert into DemoTab

  2. MySQLのデフォルト値をJSONタイプの列に設定しますか?

    デフォルト値を設定するには、次の構文のようにDEFAULT制約を使用します- alter table yourTableName modify column yourColumnName JSON NOT NULL DEFAULT ( JSON_OBJECT() ); テーブルを作成しましょう- mysql> create table demo24 −> ( −> employee_information text −> ) −> ; Query OK, 0 rows affected (1.43 sec) これ