SQL DELETE 文
1. SQL DELETE 文
DELETE 文は、テーブル内の既存のレコードを削除するために使用されます。
2. DELETE の構文
DELETE FROM テーブル名 WHERE 条件;注意: テーブルのレコードを削除する際は、細心の注意を払ってください! DELETE 文における WHERE 句に注目しましょう。WHERE 句は、どのレコードを削除すべきかを指定するものです。もし WHERE 句を省略した場合、テーブル内のすべてのレコードが削除されてしまいます!
3. デモ用データベース
以下は、例題で使用する Customers テーブルの抜粋です。
| CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
|---|---|---|---|---|---|---|
| 1 | Alfreds Futterkiste | Maria Anders | Obere Str. 57 | Berlin | 12209 | Germany |
| 2 | Ana Trujillo Emparedados y helados | Ana Trujillo | Avda. de la Constitución 2222 | México D.F. | 05021 | Mexico |
| 3 | Antonio Moreno Taquería | Antonio Moreno | Mataderos 2312 | México D.F. | 05023 | Mexico |
| 4 | Around the Horn | Thomas Hardy | 120 Hanover Sq. | London | WA1 1DP | UK |
| 5 | Berglunds snabbköp | Christina Berglund | Berguvsvägen 8 | Luleå | S-958 22 | Sweden |
4. SQL DELETE の実行例
次の SQL は、"Customers" テーブルから "Alfreds Futterkiste" という顧客を削除します。
4.1 例(自分専用の SQL Server を取得)
DELETE FROM Customers WHERE CustomerName='Alfreds Futterkiste';実行後、Customers テーブルの選択範囲は以下のようになります:
| CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
|---|---|---|---|---|---|---|
| 2 | Ana Trujillo Emparedados y helados | Ana Trujillo | Avda. de la Constitución 2222 | México D.F. | 05021 | Mexico |
| 3 | Antonio Moreno Taquería | Antonio Moreno | Mataderos 2312 | México D.F. | 05023 | Mexico |
| 4 | Around the Horn | Thomas Hardy | 120 Hanover Sq. | London | WA1 1DP | UK |
| 5 | Berglunds snabbköp | Christina Berglund | Berguvsvägen 8 | Luleå | S-958 22 | Sweden |
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;