SQLを使うときにNULLに更新したいことやNULLである項目を更新したいことはありませんか?今回はUPDATE文でのNULLの使用方法を解説します。
NULLとは
NULL(ヌル、ナル)は特殊な値であり、データが存在しないという意味を持ちます。文字列の空文字(”)や数値の0とは異なる特殊な値です。そのため、NULLの取り扱いには十分に注意する必要があります。
SELECT文でのNULLの取り扱い方法はこちらをご覧ください。

NULL値を持つデータのUPDATE
NULLのデータのUPDATE方法
NULLであるデータをUPDATEするにはIS NULLを使います。
1 |
UPDATE TABLE_NAME SET column_name1 = 'value' WHERE column_name2 IS NULL |
例としてスポーツテーブルからスポーツの列がNULLのデータを更新します。
テーブルの内容
テーブル(SPORTSTABLE)の一覧を見てみましょう。
1 2 3 4 5 6 |
SELECT * FROM SPORTSTABLE; ID NAME SPORTS ------------------ 0001 YAMADA SOCCER 0002 TANAKA BASEBALL 0003 PENCHAN NULL |
ID:0003, NAME:PENCHAN のSPORTSの項目がNULLになっています。このレコードを更新してみましょう。
SQL
1 |
UPDATE SPORTSTABLE SET SPORTS = 'SOCCER' WHERE SPORTS IS NULL; |
上記のSQLはSPORTSの項目がNULLになっているレコードをSOCCERに更新するものです。
SQLの実行結果
1 2 3 4 5 6 7 |
UPDATE SPORTSTABLE SET SPORTS = 'SOCCER' WHERE SPORTS IS NULL; SELECT * FROM SPORTSTABLE; ID NAME SPORTS ------------------ 0001 YAMADA SOCCER 0002 TANAKA BASEBALL 0003 PENCHAN SOCCER |
SPORTSの項目がNULLになっているレコードがSOCCERに更新されています。
NULLにデータをUPDATEする方法
NULLにデータをUPDATEするには= NULLを使います。
1 |
UPDATE TABLE_NAME SET column_name1 = NULL WHERE column_name2 = 'value' |
例としてスポーツテーブルのスポーツの列をNULLにデータを更新します。
テーブルの内容
1 2 3 4 5 6 |
SELECT * FROM SPORTSTABLE; ID NAME SPORTS ------------------ 0001 YAMADA SOCCER 0002 TANAKA BASEBALL 0003 PENCHAN SOCCER |
ID:0003, NAME:PENCHAN のSPORTSの項目をSOCCERからNULLに更新してみましょう。
SQL
1 |
UPDATE SPORTSTABLE SET SPORTS = NULL WHERE SPORTS = 'SOCCER'; |
上記のSQLはSPORTSの項目がSOCCERになっているレコードをNULLに更新するものです。
SQLの実行結果
1 2 3 4 5 6 7 |
UPDATE SPORTSTABLE SET SPORTS = NULL WHERE SPORTS = 'SOCCER'; SELECT * FROM SPORTSTABLE; ID NAME SPORTS ------------------ 0001 YAMADA SOCCER 0002 TANAKA BASEBALL 0003 PENCHAN NULL |
SPORTSの項目がSOCCERであったレコードがNULLに更新されています。
まとめ
SQLを使うときにNULLに更新したいことやNULLである項目を更新したいことがあると思います。そんなときは今回の方法を思い出してSQLを実行してみてください。