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;