概要 :このチュートリアルでは、SQLite DELETE
の使用方法を説明します テーブルから行を削除するステートメント。
SQLite DELETE
の紹介 ステートメント
テーブルに新しい行を挿入し、テーブルの既存のデータを更新する方法を学習しました。場合によっては、テーブルから行を削除する必要があります。この場合、SQLite DELETE
を使用します ステートメント。
SQLiteのDELETE
ステートメントを使用すると、テーブル内の1つの行、複数の行、およびすべての行を削除できます。 SQLiteのDELETE
の構文 ステートメントは次のとおりです。
DELETE FROM table
WHERE search_condition;
Code language: SQL (Structured Query Language) (sql)
この構文では:
- 最初に、
DELETE FROM
の後に行を削除するテーブルの名前を指定します キーワード。 - 次に、
WHERE
に検索条件を追加します 削除する行を識別する句。WHERE
句はDELETE
のオプション部分です 声明。WHERE
を省略した場合 句、DELETE
ステートメントは、テーブル内のすべての行を削除します。
SQLiteは、DELETE
の拡張機能も提供します ORDER BY
を追加してステートメント およびLIMIT
条項。 SQLITE_ENABLE_UPDATE_DELETE_LIMITコンパイル時オプションを使用してSQLiteをコンパイルする場合は、ORDER BY
を使用できます。 およびLIMIT
DELETE
の句 次の形式のようなステートメント:
DELETE FROM table
WHERE search_condition
ORDER BY criteria
LIMIT row_count OFFSET offset;
Code language: SQL (Structured Query Language) (sql)
ORDER BY
句は、先行するsearch_condition
によってフィルタリングされた行を並べ替えます WHERE
で 句とLIMIT
句は、削除する行数を指定します。
DELETE
を使用する場合は注意してください WHERE
のないステートメント トリガーのないテーブルの句。 SQLiteは、個々の行にアクセスして削除するのではなく、すべての行を1回のショットで削除します。この機能は、切り捨て最適化と呼ばれます。
SQLite DELETE
ステートメントの例
artists_backup
を使用します テーブルチュートリアルに行を挿入する方法で作成されたテーブル。
そのチュートリアルに従わなかった場合は、artists_backup
を作成できます。 次のスクリプトを使用して、テーブルにデータを挿入します。
-- create artists backup table
CREATE TABLE artists_backup(
artistid INTEGER PRIMARY KEY AUTOINCREMENT,
name NVARCHAR
);
-- populate data from the artists table
INSERT INTO artists_backup
SELECT artistid,name
FROM artists;
Code language: SQL (Structured Query Language) (sql)
次のステートメントは、artists_backup
からすべての行を返します テーブル:
SELECT
artistid,
name
FROM
artists_backup;
Code language: SQL (Structured Query Language) (sql)
試してみてください
artists_backup
には280行あります テーブル。
ID 1のアーティストを削除するには、次のステートメントを使用します。
DELETE FROM artists_backup
WHERE artistid = 1;
Code language: SQL (Structured Query Language) (sql)
試してみてください
artistid
を使用しているため アーティストを特定するために、ステートメントは正確に1行を削除しました。
名前にSantana
という単語が含まれているアーティストを削除するとします。 :
DELETE FROM artists_backup
WHERE name LIKE '%Santana%';
Code language: SQL (Structured Query Language) (sql)
試してみてください
name
の値が9行あります 列にSantana
という単語が含まれています したがって、これらの9行は削除されました。
artists_backup
のすべての行を削除するには テーブルの場合、WHERE
を省略する必要があります 次のステートメントとしての句:
DELETE FROM artists_backup;
Code language: SQL (Structured Query Language) (sql)
試してみてください
このチュートリアルでは、SQLite DELETE
の使用方法を学びました。 テーブル内の行を削除するステートメント。