JavaのWHERE句とは?SELECT・UPDATE・DELETEで対象データを絞り込む考え方

本記事は、Schooの「Java入門 中級【2026年版】」第1回「エンタープライズアプリケーションとデータベース処理」を学ぶ前後に、SQLの WHERE 句の考え方を整理したい方向けの記事です。
データベースの表には複数の行があります。WHERE 句は、その中から「どの行を対象にするか」を決めるために使います。
Schoo コースページ:Java入門 中級【2026年版】
WHERE句は対象行を絞り込むために使う
たとえば、songs テーブルからアーティストが Luna の曲だけを取り出したい場合、次のように書きます。
String sql = "SELECT id, title, artist FROM songs WHERE artist = 'Luna'";
WHERE は、テーブル全体の中から条件に合う行だけを選ぶために使います。WHERE がない場合は、基本的にテーブル全体が対象になります。WHERE を付けると、条件に合う行だけを対象にできます。
WHERE句はSELECTだけで使うものではない
WHERE はSELECT文だけで使うものではありません。UPDATE文やDELETE文でも、どの行を書き換えるか、どの行を削除するかを決めるために使います。
同じ WHERE id = 1 でも、SELECTで使えば「idが1の行を検索する」、UPDATEで使えば「idが1の行を書き換える」、DELETEで使えば「idが1の行を削除する」という意味になります。
WHERE句の条件は列・比較・値で読む
WHERE句の条件は、まず「どの列を、何と比べているのか」を見ると読みやすくなります。
WHERE artist = 'Luna' は、「artist列の値がLunaの行」という条件です。id = 1 なら「id列が1の行」、artist = 'Luna' なら「artist列がLunaの行」です。SQLでは文字列を 'Luna' のようにシングルクォーテーションで囲みます。
JavaではSQL文字列としてWHERE句を書く
JDBCで実行するときは、WHERE句もSQL文字列の一部として書きます。
String sql = "SELECT id, title, artist FROM songs WHERE id = 1";
ResultSet rs = stmt.executeQuery(sql);
このコードでは、id が 1 の行だけが検索結果になります。検索結果は ResultSet として受け取り、rs.next() で1行ずつ読みます。
UPDATEとDELETEではWHEREを書かない危険がある
WHERE句は、データを変更するときに特に重要です。UPDATEやDELETEでWHEREを書かないと、意図しない多くの行が対象になる可能性があります。
SELECTでWHEREを書き忘れると、検索結果が多くなるだけで済む場合もあります。しかし、UPDATEやDELETEでWHEREを書き忘れると、データを書き換えたり削除したりしてしまいます。
確認問題
次の問題で、WHERE句の読み方を確認してみましょう。
第1問
次のWHERE句は、どのような行を対象にしていますか。
WHERE id = 1
第2問
次のSQLは、何をするSQLですか。
SELECT id, title, artist FROM songs WHERE artist = 'Luna'
第3問
次のSQLにはどのような危険がありますか。
UPDATE songs SET artist = '未設定'
まとめ
WHERE句は、SQLで対象にする行を絞り込むために使う- SELECTでは検索対象、UPDATEでは更新対象、DELETEでは削除対象を決める
- UPDATEやDELETEでは、WHEREを書かないと影響範囲が広がるため注意が必要