問題:
テーブルから1行を削除したい。
例1:
exam
表には、学生の名前と試験の結果があります。
name | 結果 |
---|---|
Janet Morgen | 9 |
タヤベイン | 11 |
アンジョンソン | 11 |
Josh Kaur | 10 |
エレンソーントン | 8 |
エレンソーントンの行を削除したい。
ソリューション1:
DELETE FROM exam WHERE name = 'Ellen Thornton';
テーブルexam
今は次のようになっています:
name | 結果 |
---|---|
Janet Morgen | 9 |
タヤベイン | 11 |
アンジョンソン | 11 |
Josh Kaur | 10 |
ディスカッション:
DELETE FROM
を使用します 行を削除するテーブルの名前。 WHERE
、行を指定する条件を記述します。特定の行を念頭に置いている場合は、一意の値を含む列を使用して条件を記述するのが最適です。ここで、一意の列はname
です。 。
名前が'Ellen Thornton
と等しい行が多数ある場合 '、それらはすべて削除されます。そのような名前がない場合、行は削除されません。
例2:
exam
表には、前の例と同じように、学生の名前と試験の結果があります。
name | 結果 |
---|---|
Janet Morgen | 9 |
タヤベイン | 11 |
アンジョンソン | 11 |
Josh Kaur | 10 |
エレンソーントン | 8 |
result
の対象となるすべての行を削除する 10
より大きい 。
ソリューション2:
DELETE FROM exam WHERE result > 10;
exam
テーブルは次のようになります:
name | 結果 |
---|---|
Janet Morgen | 9 |
Josh Kaur | 10 |
エレンソーントン | 8 |
ディスカッション:
削除する必要のある正確な行や、削除する必要のある行の数さえわからない場合があります。行を削除する条件を記述できます。条件を満たす行が多数ある場合もあれば、1行だけの場合もあれば、行がまったくない場合もあります。
もちろん、WHERE
で複数の条件を書くことができます 、AND
でそれらを結合します またはOR
、例:
DELETE FROM exam WHERE result > 10 AND name LIKE 'J%';