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

MySQLで新しい行を挿入するとき、NULLのカラムを指定する必要はありますか?

INSERT文でカラムリストを指定しない場合は、以下の構文を使用できます。値を設定しないカラムには、明示的にNULLを渡します。

insert into yourTableName values(NULL,yourValue,NULL,NULL,.....N);

まず、テーブルを作成しましょう。

mysql> create table DemoTable1513
    -> (
    -> StudentId int,
    -> StudentName varchar(20) ,
    -> StudentAge int,
    -> StudentCountryName varchar(20)
    -> );
Query OK, 0 rows affected (0.58 sec)

次に、INSERTコマンドを使用して、テーブルにいくつかのレコードを挿入します。ここでは、値を指定しないカラムにNULLを渡しています。

mysql> insert into DemoTable1513 values(NULL,'Chris Brown',NULL,NULL);
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable1513 values(101,NULL,NULL,NULL);
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable1513 values(NULL,NULL,23,NULL);
Query OK, 1 row affected (0.42 sec)
mysql> insert into DemoTable1513 values(NULL,NULL,NULL,'US');
Query OK, 1 row affected (0.16 sec)

SELECT文を使用して、テーブル内のすべてのレコードを表示します。

mysql> select * from DemoTable1513;

実行すると、以下のような出力が得られます。

+-----------+-------------+------------+--------------------+
| StudentId | StudentName | StudentAge | StudentCountryName |
+-----------+-------------+------------+--------------------+
|      NULL | Chris Brown |       NULL | NULL               |
|       101 | NULL        |       NULL | NULL               |
|      NULL | NULL        |         23 | NULL               |
|      NULL | NULL        |       NULL | US                 |
+-----------+-------------+------------+--------------------+
4 rows in set (0.00 sec)

このように、カラムリストを省略したINSERT文を実行する場合は、テーブルの全カラム数と同じ数の値を指定する必要があります。そのため、値を設定しないカラムにはNULLを明示的に記述しなければなりません。

なお、INSERT文でカラムリストを明示的に指定すれば、値を設定したいカラムだけを記述でき、省略されたカラムには自動的にNULL(またはデフォルト値)が設定されます。状況に応じて、どちらの書き方を使い分けるとよいでしょう。

  1. MySQLデータベースへの挿入時にdecimal(19,2)の値が変わる?truncate()で正確な値を保存する方法

    decimal(19,2)の値が変わる原因と対処法MySQLのDECIMAL(19,2)型カラムに値を直接挿入すると、小数点以下3桁目が四捨五入され、元の値と異なる数値が保存されることがあります。正確な実数値をそのまま保存したい場合は、truncate()関数を使って小数点以下2桁で切り捨ててから挿入します。テーブルの作成まず、以下のクエリでテーブルを作成します。mysql> create table demo59-> (-> price decimal(19,2)-> );Query OK, 0 rows affected (1.12 sec)レコードの挿入次に、in

  2. MySQL 8.0の新機能とは?注目すべき7つのポイントを徹底解説

    MySQLは単体でも非常に強力なデータベース管理システムであり、高価で高性能な商用データベース製品が備える機能の大部分をカバーしています。標準的なSQLデータ言語を採用しており、2018年4月19日にリリースされたMySQL 8.0は、現在8.0.23が最新バージョンとして提供されています。本記事では、MySQL 8.0に導入された主な新機能について、わかりやすく解説します。アトミックDDL(Atomic DDL)アトミックDDLステートメントにより、データディクショナリへの更新やストレージエンジンの操作などが、ひとつの不可分な処理として統合されました。これにより、DDL実行中に障害が発生した