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

MySQLの行を更新するためのクエリの更新

    このチュートリアルは、MySQLを使用した基本的なSQLクエリの学習シリーズの一部です。このチュートリアルでは、行を更新するSQLクエリについて説明しますまたは> MySQLのテーブルのデータ。

    クエリの更新

    コマンドUPDATE キーワードSETを使用して、テーブルの行を変更または更新するために使用できます。データベースにリモートでログインしている場合、テーブルから行を読み取るには、テーブルのUPDATE特権も必要になります。

    # UPDATE - Syntax
    UPDATE `table_name` SET `column_1` = <value>, `column_2` = <value> ... [WHERE <single or multiple filter conditions>];

    クエリの説明

    MySQLコマンドUPDATE 指定されたテーブル名の行またはデータを変更するために使用できます。ここで、列名、行の値、およびテーブルの名前は必須です。 セット 新しい列の値を設定するには、キーワードが必要です。

    UPDATEクエリを使用している間は、少なくとも1つの列とその新しい値を指定する必要があります。文字列値の場合、値は一重引用符で囲む必要があります。

    また、行を更新するときに考慮する条件を指定する必要があります。 行を選択的に更新する必要がある場合は、UPDATEコマンドでWHERE句を使用する必要があります。 理想的なシナリオ。 UPDATEコマンドの使用中にWHEREの使用を省略できますが、テーブルデータが大きい場合はパフォーマンスの問題が発生します。

    このセクションでは、UPDATEコマンドを使用してテーブルの行を更新する例を示します。以下のクエリを使用して、ID、名、姓、およびユーザーデータを格納するアクティブな列を持つユーザーテーブルを作成します。

    # Create the User Table
    CREATE TABLE `enterprise`.`user` (
    `user_id` BIGINT NOT NULL,
    `first_name` VARCHAR(45) ,
    `last_name` VARCHAR(45),
    `active` TINYINT(1) NOT NULL DEFAULT 0,
    PRIMARY KEY (`user_id`));

    下記のクエリを使用して、ユーザーテーブルにデータを挿入できます。

    # Insert Rows - All Columns
    INSERT INTO `user` ( `user_id`, `first_name`, `last_name`, `active` ) VALUES
    ( 1, 'John', 'Smith', 1 ),
    ( 2, 'Rick', 'Jones', 1 ),
    ( 3, 'Catherine', 'Ponting', 0 ),
    ( 4, 'Harsh', 'Upadhyay', 1 ),
    ( 5, 'Tajwinder', 'Singh', 0 );

    上記のクエリは、5つの異なるユーザーを表すために、ID、名、姓、およびアクティブな列を持つ5つの行をテーブルに挿入します。

    次に、userテーブルに挿入されたデータを更新します。以下に示すように、UPDATEコマンドを使用して実行できます。

    # UPDATE - Activate all the inactive users - without key column
    UPDATE `user` SET `active` = 1 WHERE `active` = 0;

    # Notes - Workbench - You might need to disable safe updates in case the primary key is not used in WHERE clause
    SET SQL_SAFE_UPDATES = 0;
    UPDATE `user` SET `active` = 1 WHERE `active` = 0;
    SET SQL_SAFE_UPDATES = 0;

    # Result
    1 John Smith 1
    2 Rick Jones 1
    3 Catherine Ponting 1
    4 Harsh Upadhyay 1
    5 Tajwinder Singh 1


    # UPDATE - Deactivate selective users - with key column
    UPDATE `user` SET `active` = 0 WHERE `user_id` = 1;
    UPDATE `user` SET `active` = 0 WHERE `user_id` IN( 3, 5 );

    # Result
    1 John Smith 0
    2 Rick Jones 1
    3 Catherine Ponting 0
    4 Harsh Upadhyay 1
    5 Tajwinder Singh 0

    上記のクエリは、WHERE句を使用してユーザーテーブルを更新します。行が指定された条件を満たす場合、テーブルの行が更新されます。

    以下に示すように、複数の列の値を更新することもできます。

    # UPDATE - Modify first name and last name of first user
    UPDATE `user` SET `first_name` = 'Roy', `last_name` = 'Jordan' WHERE `user_id` = 1;

    # Result
    1 Roy Jordan 0
    2 Rick Jones 1
    3 Catherine Ponting 0
    4 Harsh Upadhyay 1
    5 Tajwinder Singh 0

    これが、MySQLテーブルに格納されているデータを変更する方法です。


    1. スポットライトクラウドアラームの収集時間

    2. GETDATEを使用してストアドプロシージャを呼び出す')'の近くの構文が正しくありません

    3. クエリを使用して再帰的に親を検索する

    4. ゆっくりと変化する寸法(SCD)の概要