sql >> データベース >  >> RDS >> SQLite

SQLite削除

    概要 :このチュートリアルでは、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の使用方法を学びました。 テーブル内の行を削除するステートメント。


    1. ミリ秒単位のDateTimeの表現?

    2. where句で集計関数が許可されないのはなぜですか

    3. MySQLの日付形式のチートシート

    4. SQLクエリを使用してコンマ区切りのリストを作成するにはどうすればよいですか?