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

SQLiteアップデート

    概要 :このチュートリアルでは、SQLite UPDATEの使用方法を学習します テーブル内の既存の行のデータを更新するステートメント。

    SQLite UPDATEの紹介 ステートメント

    テーブル内の既存のデータを更新するには、SQLite UPDATEを使用します 声明。次に、UPDATEの構文を示します。 ステートメント:

    UPDATE table
    SET column_1 = new_value_1,
        column_2 = new_value_2
    WHERE
        search_condition 
    ORDER column_or_expression
    LIMIT row_count OFFSET offset;Code language: SQL (Structured Query Language) (sql)

    この構文では:

    • まず、UPDATEの後に更新するテーブルを指定します 条項。
    • 次に、SETでテーブルの各列に新しい値を設定します 条項。
    • 3番目に、WHEREの条件を使用して更新する行を指定します 句。 WHERE 句はオプションです。スキップすると、UPDATE ステートメントは、テーブルのすべての行のデータを更新します。
    • 最後に、ORDER BYを使用します およびLIMIT UPDATEの句 更新する行数を指定するステートメント。

    LIMITで負の値を使用する場合は注意してください 句、SQLiteは制限がないと想定し、前のWHEREの条件を満たすすべての行を更新します 条項。

    ORDER BY 句は常にLIMITと一緒に使用する必要があります 更新する行を正確に指定する句。そうしないと、どの行が実際に更新されるかがわかりません。 ORDER BYがないため 句では、テーブル内の行の順序は指定されていません。

    SQLite UPDATE ステートメントの例

    employeesを使用します UPDATEを示すサンプルデータベースのテーブル ステートメント。

    次のSELECT ステートメントはemployeesから部分的なデータを取得します テーブル:

    SELECT
    	employeeid,
    	firstname,
    	lastname,
    	title,
    	email
    FROM
    	employees;Code language: SQL (Structured Query Language) (sql)

    試してみてください

    1)1つの列の例を更新

    ジェーンが結婚し、自分の名前を夫の名前、つまりSmithに変更したいとします。 。この場合、次のステートメントを使用してジェーンの名前を更新できます。

    UPDATE employees
    SET lastname = 'Smith'
    WHERE employeeid = 3;Code language: SQL (Structured Query Language) (sql)

    試してみてください

    WHEREの式 句は、ジェーンのレコードのみを更新することを確認します。 lastnameを設定します 列をリテラル文字列に変換'Smith'

    UPDATEを確認するには 、次のステートメントを使用します:

    SELECT
    	employeeid,
    	firstname,
    	lastname,
    	title,
    	email
    FROM
    	employees
    WHERE
    	employeeid = 3;Code language: SQL (Structured Query Language) (sql)

    試してみてください

    2)複数の列を更新する例

    Park Margaretを想定します Torontoにあります 彼の住所、都市、州の情報を変更したい。 UPDATEを使用できます 次のように複数の列を更新するステートメント:

    UPDATE employees
    SET city = 'Toronto',
        state = 'ON',
        postalcode = 'M5P 2N7'
    WHERE
        employeeid = 4;Code language: SQL (Structured Query Language) (sql)

    試してみてください

    UPDATEを確認するには 、次のステートメントを使用します:

    SELECT
    	employeeid,
    	firstname,
    	lastname,
    	state,
    	city,
    	PostalCode
    FROM
    	employees
    WHERE
    	employeeid = 4;Code language: SQL (Structured Query Language) (sql)

    試してみてください

    3)ORDER BYで更新 およびLIMIT 条項の例

    UPDATEを実行するには、SQLITE_ENABLE_UPDATE_DELETE_LIMITオプションを使用してSQLiteをビルドする必要があることに注意してください。 オプションのORDER BYを含むステートメント およびLIMIT 条項。

    employeesの従業員のメールアドレスを確認しましょう テーブル:

    SELECT
    	employeeid,
    	firstname,
    	lastname,
    	email
    FROM
    	employees;Code language: SQL (Structured Query Language) (sql)

    試してみてください

    employeesの1行を更新するには テーブルでは、LIMIT 1を使用します 句。名でソートされた従業員の最初の行を確実に更新するには、ORDER BY firstnameを追加します。 条項。

    したがって、次のステートメントはAndrew Adamsの電子メールを更新します :

    UPDATE employees
    SET email = LOWER(
    	firstname || "." || lastname || "@chinookcorp.com"
    )
    ORDER BY
    	firstname
    LIMIT 1;Code language: SQL (Structured Query Language) (sql)

    試してみてください

    新しいメールアドレスは、名、ドット(。)、姓、および接尾辞@chinookcorp.comを組み合わせたものです。

    LOWER() 関数はメールを小文字に変換します。

    4)すべての行を更新する例

    employeesのすべての行を更新するには テーブルの場合、WHEREをスキップします 句。たとえば、次のUPDATE ステートメントは、すべての従業員のすべての電子メールアドレスを小文字に変更します:

    UPDATE employees
    SET email = LOWER(
    	firstname || "." || lastname || "@chinookcorp.com"
    );Code language: SQL (Structured Query Language) (sql)

    試してみてください

    このチュートリアルでは、SQLiteのUPDATEの使用方法を学びました。 テーブル内の既存のデータを更新するステートメント。

    参照

    • https://www.sqlite.org/lang_update.html –SQLiteUpdateステートメント

    1. WHERE句を使用して配列をクエリに渡す

    2. Postgresqlアダプター(pg):サーバーに接続できませんでした

    3. PostgreSQLとMySQL:どちらが最適ですか?

    4. 複数列のSQLMAX?