MySQLクイックレビュー:更新と削除操作
2208 ワード
前提要述:参考書『MySQL必知必会』
6.1データの更新
表のデータを更新(修正)するには、UPDATE文を使用します.UPDATEは2つの方法で使用できます.テーブル内の特定のローを更新します. は、テーブル内のすべてのローを更新します.
UPDATE構文の構造は3つの部分で構成されています.更新するテーブル; カラム名とその新しい値. は、ローを更新するフィルタ条件(WHEREキーワード)を決定する.
書式:
説明: SETコマンドは、更新されたカラムに新しい値を割り当てるために使用されます. WHERE句を使用してMySQLが更新するローを教えます.通常、他のローを一意に区別できるフィールドが条件として選択されます.WHERE句がなければテーブル内のすべてのローが更新されます.これは非常に致命的な問題です.
例えば、学生表で李四の性別を修正します.
カラムの値を削除する場合は、NULLに設定できます(テーブル定義でNULL値が許可されていると仮定します).
UPDATE文では、サブクエリの結果を使用してデータを更新できます.1行または複数行の更新中にエラーが発生した場合、UPDATE操作全体がキャンセルされます(エラーが発生する前に更新されたすべての列が元の値に復元されます).エラーでも更新を続行する場合はIGNOREキーを使用できます.
6.2データの削除
テーブルのローを削除するには、DELETE文を使用します.DELETEは2つの方法で使用できます.テーブルから特定のローを削除します. テーブルからすべてのローを削除します.
書式:
説明: DELETEにはカラム名とワイルドカードは必要ありません.DELETEは列を削除するのではなく、行全体を削除します.カラムを削除する場合は、UPDATEを使用します. DELETEはUPDATEと同様に、どの行を削除するかを指定するWHEREが必要なので注意しなければなりません.テーブルのすべてのデータを削除しない限り、WHEREは追加されません. WHEREは一般的に、プライマリ・キー、名前(重複がないと仮定) のような一意に区切ることができるフィールドを指定する.
たとえば、学生表の李四という学生を削除します.
テーブルからすべてのローをより速く削除するには、DELETEを使用しないで、TRUNCATE TABLE文を使用します.同じ作業を完了しますが、より高速です.TRUNCATEは実際には元のテーブルを削除し、テーブルのデータを行ごとに削除するのではなく、テーブルを再作成します.
6.3更新と削除のガイドライン
SQLプログラマーがUPDATEとDELETEを使用するには、次のような習慣が必要です.各行を更新および削除する必要がある場合を除き、WHERE句を持たないUPDATE文またはDELETE文は使用しないでください. 各テーブルにプライマリ・キーがあることを保証し、可能な限りWHERE句のように使用します(各プライマリ・キー、複数の値または値の範囲を指定できます). UPDATE文またはDELETE文に対してWHERE句を使用する前に、まずSELECTクエリ文でテストを行い、WHERE句の作成が正しくないことを防止するために、正しい記録がフィルタされていることを保証しなければならない. は、参照整合性を強制的に実装するデータベースを使用します.これにより、MySQLは他のテーブルに関連付けられたデータを持つロー(外部キー)の削除を許可しません. MySQLには取り消しボタンがないので、UPDATE文とDELETE文の使用に注意してください.
6.1データの更新
表のデータを更新(修正)するには、UPDATE文を使用します.UPDATEは2つの方法で使用できます.
UPDATE構文の構造は3つの部分で構成されています.
書式:
UPDATE SET field1=newValue1, field2=newValue2,...
WHERE condition;
説明:
例えば、学生表で李四の性別を修正します.
UPDATE student SET stu_sex=' ' WHERE stu_name=' ';
カラムの値を削除する場合は、NULLに設定できます(テーブル定義でNULL値が許可されていると仮定します).
UPDATE文では、サブクエリの結果を使用してデータを更新できます.1行または複数行の更新中にエラーが発生した場合、UPDATE操作全体がキャンセルされます(エラーが発生する前に更新されたすべての列が元の値に復元されます).エラーでも更新を続行する場合はIGNOREキーを使用できます.
UPDATE IGNORE ...;
6.2データの削除
テーブルのローを削除するには、DELETE文を使用します.DELETEは2つの方法で使用できます.
書式:
DELETE FROM WHERE condition;
説明:
たとえば、学生表の李四という学生を削除します.
DELETE FROM student WHERE stu_name=' ';
テーブルからすべてのローをより速く削除するには、DELETEを使用しないで、TRUNCATE TABLE文を使用します.同じ作業を完了しますが、より高速です.TRUNCATEは実際には元のテーブルを削除し、テーブルのデータを行ごとに削除するのではなく、テーブルを再作成します.
6.3更新と削除のガイドライン
SQLプログラマーがUPDATEとDELETEを使用するには、次のような習慣が必要です.