Developer

【SQL基礎】DELETE文の基本構文
2020.11.30
Lv1

【SQL基礎】DELETE文の基本構文

DELETE文とは


作成したテーブルに格納されているデータを削除したい。

そんな時はDELETE文を使います。DELETE文を使うとテーブルに格納されているすべてのデータを削除できたり、WHERE句で条件を指定することで特定のデータを削除することもできます。ただし、データを削除する場合は誤って意図しないデータを削除しないように注意が必要です。より安全にDELETEを実行するためのテクニックについても後程触れていきます。それではまずDELETE文の構造を見ていきましょう。

 

DELETE文の基本構文


DELETE文の書式は以下の通りです。

DELETE

FROM テーブル名

WHERE カラム名=値;

 

今回は例として、以下のようなテーブル(テーブル名:teachers)を使用します。


SELECT *

FROM teachers;

では、ここからDELETE文を使ってデータを削除していきます。

まずnameカラムの値がナオキのデータを削除します。


DELETE 

FROM teachers 

WHERE name= ’ナオキ’;

SELECT * FROM テーブル名 で確認してみると、nameカラムの値がナオキのデータが削除されていますね。

特定のテーブルのすべてのデータを削除したい場合はWHERE句で条件を指定せず、次のように実行します。


DELETE

FROM teachers ;

SELECT * FROM テーブル名 で確認すると、抽出するデータが無いので以下のようになります。


SELECT *

FROM  teachers ;

このようにDELETE文はWHERE句で条件に一致したデータを対象に削除するか、テーブルに格納されているすべてのデータの削除を行います。

 

今回の学習ポイント


・DELETE文はテーブルのデータを削除したい時に使う。

・特定のデータを削除したい場合はカラムを指定、すべてのデータを削除したい場合はテーブル名のみ指定。

・誤って別のデータを削除するのを防ぐために、SELECT文で削除したいデータを確認してから、DELETE文でteachersテーブルのidのような他のデータと被ることがない値を指定すると誤削除する可能性が少なくなります。

 

練習問題

問題として使用するデータは「SQL練習問題」のものを使用しています。

以下からダウンロード可能です。

以下のようにしてworldcup2014データベースを作成し、インポートしてください。

※worldcup2014.zip解凍してできるworldcup2014.sqlファイルをCドライブ直下に配置した場合。

worldcup2014.sql

[sql] CREATE DATABASE worldcup2014;
USE worldcup2014;
source C:\worldcup2014.sql
[/sql]
  1. countriesテーブルのカメルーンのデータを削除する。
答え
[sql]

DELETE

FROM countries

WHERE name=’カメルーン’;

[/sql]

指定したデータが削除できているかSELECT文を使って確認します。

[sql]

SELECT *

FROM countries

WHERE group_name = ‘A’ ;

[/sql]

グループAからカメルーンのみが削除されているのが確認できます。

  1. FWの選手を全て削除する。
答え
[sql]

DELETE

FROM players

WHERE position=’FW’;

[/sql]

WHERE句で削除する対象をFWに指定すると以下のようにplayersカラムにあったFW選手のデータが削除されます。

[sql]

SEELCT *

FROM players ;

[/sql]

 

※一部選手省略

 

以上、DELETE文の基本構文でした。

 

 

連載目次リンク

SQL基礎 連載目次

関連する連載リンク

SQL練習問題 一覧まとめ