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

SQL UPDATE

    SQLの更新

    SQLUPDATEステートメントは使用されます から データベースに存在するレコードを更新および変更する 。これは、データベースのテーブルに保存されている既存のレコードを変更するために使用されます。このコマンドは、場所と連携して機能します 句。 UPDATEステートメントで指定された条件は、テーブルのどの列または行が影響を受けるか、または変更されるかを決定するために使用されます。

    UPDATEコマンドを使用して、別のテーブルでテーブルを更新することもできます。 SQLクエリの日付と時刻を更新するためにも使用できます。

    SQL UPDATE JOIN

    SQL UPDATEステートメントを使用して、結合によって接続されている別のテーブルを使用して1つのテーブルを更新することもできます。これは、SQLUPDATEJOINステートメントと呼ばれます。

    UPDATE table1, table2,
     INNER JOIN table1
     ON table1.column1 = table2.column1 
     SET table1.column1 = table2.column2
     WHERE condition

    以下は、JOIN句を使用したUPDATEステートメントの基本的な構文です。

    例:

    CREATE TABLE TAE1 (Col1 INT, Col2 INT, Col3 VARCHAR (100))  
     INSERT INTO TAE1 (Col1, Col2, Col3)  
     SELECT 1, 11, 'FIRST'  
     UNION ALL  
     SELECT 11,12, 'SECOND'  
     UNION ALL   
     SELECT 21, 13, 'THIRD'  
     UNION ALL   
     SELECT 31, 14, 'FOURTH'   

    まず、最初のテーブルTAE1を作成しましょう。

     CREATE TABLE TAE2 (Col1 INT, Col2 INT, Col3 VARCHAR (100))  
     INSERT INTO TAE2 (Col1, Col2, Col3)  
     SELECT 1, 21, 'TWO-ONE'  
     UNION ALL  
     SELECT 11,22, 'TWO-TWO'  
     UNION ALL   
     SELECT 21, 23, 'TWO-THREE'  
     UNION ALL   
     SELECT 31, 24, 'TWO-FOUR'   

    次に、2番目のテーブルTAE2を作成しましょう。

    SELECT *
     FROM TAE1 
    Col1 Col2 Col3
    1 11 最初
    11 12 2番目
    21 13 3番目
    31 14 4番目

    出力:

    次に、テーブルTAE2の内容を見てみましょう。

    SELECT *
     FROM TAE2

    出力:

    Col1 Col2 Col3
    1 21 ツーワン
    11 22 ツーツー
    21 23 ツースリー
    31 24 ツーフォー

    次のクエリは、同様の行があり、Col1が21と31であるテーブルTAE2を使用して、Col1の値が21と31であるTAE1の行を更新します。TAE1テーブルのCol2とCol3の対応するレコードのみが更新されます。 。

    UPDATE TAE1
     SET Col2 = TAE2.Col2,  
     Col3 = TAE2.Col3  
     FROM TAE1  
     INNER JOIN TAE2 ON TAE1.Col1 = TAE2.Col1  
     WHERE TAE1.Col1 IN (21, 31); 

    出力:

    Col1 Col2 Col3
    1 11 最初
    11 12 2番目
    21 13 ツースリー
    31 14 ツーフォー

    ここで、テーブルTAE1の内容を確認すると、次の出力が得られます。

    ただし、TAE2の内容は変更されていません。

    Col1 Col2 Col3
    1 21 ツーワン
    11 22 ツーツー
    21 23 ツースリー
    31 24 ツーフォー

    これは、UPDATEステートメントでJOIN句を使用する例です。上記の2つのテーブルをマージしました。

    SQL更新日

    SQL UPDATE DATEステートメントは、SQLの日付と時刻のフィールドを更新するために使用されます。

    UPDATE table_name
     SET data_field = ‘data_value’ 
     WHERE conditions; 

    以下は、日付と時刻のフィールドを更新するの一般的な構文です。 SQL

    UPDATE table_name
     SET data_field = getdate(); 

    以下は、日付を現在の日付で更新するの構文です。 SQL

    UPDATE table_name
     SET data_field = CURRENT_TIMESTAMP; 

    以下は、SQLで日付と時刻を現在の日付と時刻に更新するの構文です。

     UPDATE table_name
     SET data_field = ‘YYYY-MM-DD HH:MM:SS’;

    以下は、SQLで特定の日時で日付と時刻を更新するの構文です。

    UPDATE table_name
     SET data_field = CAST(‘date_value’ AS DATETIME); 

    以下は、日付の形式が不明な場合に特定の値で日付を更新する構文です。

    例:

    UPDATE Employee
     SET DOJ = ‘2021-07-05’ 
     WHERE Dept_ID = 10; 

    以下は、特定の従業員の複数の行の日付を更新する例です。 テーブル。

    Emp_ID Emp_Name 指定 Manager_ID DOJ 給与 Dept_ID
    1 Emp1 ディレクター 2021-07-11 45000 10
    2 Emp2 ディレクター 2021-07-11 40000 20
    3 Emp3 マネージャー Emp1 2021-07-11 27000 10
    4 Emp4 マネージャー Emp2 2021-10-08 25000 20
    5 Emp5 アナリスト Emp3 2021-07-11 20000 10
    6 Emp6 アナリスト Emp3 2021-10-08 18000 10
    7 Emp7 店員 Emp3 2021-07-11 15000 10
    8 Emp8 セールスマン Emp4 2021-09-09 14000 20
    9 Emp9 セールスマン Emp4 2021-10-08 13000 20

    クエリ:

    出力:

    Emp_ID Emp_Name 指定 Manager_ID DOJ 給与 Dept_ID
    1 Emp1 ディレクター 2021-07-05 45000 10
    3 Emp3 マネージャー Emp1 2021-07-05 27000 10
    5 Emp5 アナリスト Emp3 2021-07-05 20000 10
    6 Emp6 アナリスト Emp3 2021-07-05 18000 10
    7 Emp7 店員 Emp3 2021-07-05 15000 10

    したがって、Dept_ID10を持つすべての従業員のDOJ列が更新されました。

    以下は、CAST関数を使用して学生テーブルの入学日を更新する例です。

    UPDATE student
    SET admission_date = CAST(‘2021-04-10’ AS DATETIME)
    WHERE id = 42;


    1. SQL Serverでマルチステートメントテーブル値関数(MSTVF)を作成する

    2. SQL SERVER:2つの日付の間の合計日数を取得します

    3. グループ化されたMySQLデータから最新の日付を取得する

    4. Android-GCMを使用してクライアントのsqliteデータベースを更新します