SQL 速習チュートリアル

SQL DELETE 文

1. SQL DELETE 文

DELETE 文は、テーブル内の既存のレコードを削除するために使用されます。

2. DELETE の構文

DELETE FROM テーブル名 WHERE 条件;

       注意: テーブルのレコードを削除する際は、細心の注意を払ってください! DELETE 文における WHERE 句に注目しましょう。WHERE 句は、どのレコードを削除すべきかを指定するものです。もし WHERE 句を省略した場合、テーブル内のすべてのレコードが削除されてしまいます!

3. デモ用データベース

以下は、例題で使用する Customers テーブルの抜粋です。

CustomerIDCustomerNameContactNameAddressCityPostalCodeCountry
1Alfreds FutterkisteMaria AndersObere Str. 57Berlin12209Germany
2Ana Trujillo Emparedados y heladosAna TrujilloAvda. de la Constitución 2222México D.F.05021Mexico
3Antonio Moreno TaqueríaAntonio MorenoMataderos 2312México D.F.05023Mexico
4Around the HornThomas Hardy120 Hanover Sq.LondonWA1 1DPUK
5Berglunds snabbköpChristina BerglundBerguvsvägen 8LuleåS-958 22Sweden

4. SQL DELETE の実行例

次の SQL は、"Customers" テーブルから "Alfreds Futterkiste" という顧客を削除します。

4.1 例(自分専用の SQL Server を取得)

DELETE FROM Customers WHERE CustomerName='Alfreds Futterkiste';

実行後、Customers テーブルの選択範囲は以下のようになります:

CustomerIDCustomerNameContactNameAddressCityPostalCodeCountry
2Ana Trujillo Emparedados y heladosAna TrujilloAvda. de la Constitución 2222México D.F.05021Mexico
3Antonio Moreno TaqueríaAntonio MorenoMataderos 2312México D.F.05023Mexico
4Around the HornThomas Hardy120 Hanover Sq.LondonWA1 1DPUK
5Berglunds snabbköpChristina BerglundBerguvsvägen 8LuleåS-958 22Sweden

5. すべてのレコードを削除する

テーブル自体を削除することなく、テーブル内のすべてのレコードのみを削除することが可能です。この場合、テーブルの構造(スキーマ)、アトリビュート、およびインデックスはそのまま保持されます。

5.1 構文

DELETE FROM テーブル名;

5.2 例

次の SQL は、テーブルを削除せずに Customers テーブル内のすべてのレコードを削除します。

DELETE FROM Customers;

6. テーブルを削除する

テーブル自体を完全に削除するには、DROP TABLE 文を使用します。

6.1 構文

DROP TABLE テーブル名;

6.2 例

次の SQL は、Customers テーブル全体を削除(ドロップ)します。

-- Customers テーブル全体を削除 --
DROP TABLE Customers;