H2データベース-更新
UPDATEクエリは、テーブル内の既存のレコードを更新または変更するために使用されます。WHERE句をUPDATEクエリとともに使用して、選択した行を更新できます。そうしないと、すべての行が影響を受けます。
構文
以下は、UPDATEクエリの基本的な構文です。
UPDATE tableName [ [ AS ] newTableAlias ] SET
{ { columnName = { DEFAULT | expression } } [,...] } |
{ ( columnName [,...] ) = ( select ) }
[ WHERE expression ] [ ORDER BY order [,...] ] [ LIMIT expression ]
このUPDATE構文では、AND句またはOR句を使用して複数の条件を組み合わせることができます。
例
次のレコードを持つCUSTOMERテーブルについて考えてみます。
+----+----------+-----+-----------+----------+
| ID | NAME | AGE | ADDRESS | SALARY |
+----+----------+-----+-----------+----------+
| 1 | Ramesh | 32 | Ahmedabad | 2000.00 |
| 2 | Khilan | 25 | Delhi | 1500.00 |
| 3 | kaushik | 23 | Kota | 2000.00 |
| 4 | Chaitali | 25 | Mumbai | 6500.00 |
| 5 | Hardik | 27 | Bhopal | 8500.00 |
| 6 | Komal | 22 | MP | 4500.00 |
| 7 | Muffy | 24 | Indore | 10000.00 |
+----+----------+-----+-----------+----------+
指定されたデータとともにcustomerテーブルを取得する場合は、次のクエリを実行します。
CREATE TABLE CUSTOMER (id number, name varchar(20), age number, address varchar(20),
salary number);
INSERT into CUSTOMER values (1, 'Ramesh', 32, 'Ahmedabad', 2000);
INSERT into CUSTOMER values (2, 'Khilan', 25, 'Delhi', 1500);
INSERT into CUSTOMER values (3, 'kaushik', 23, 'Kota', 2000);
INSERT into CUSTOMER values (4, 'Chaitali', 25, 'Mumbai', 6500);
INSERT into CUSTOMER values (5, 'Hardik', 27, 'Bhopal', 8500);
INSERT into CUSTOMER values (6, 'Komal', 22, 'MP', 4500);
INSERT into CUSTOMER values (7, 'Muffy', 24, 'Indore', 10000);
次のコマンドは、IDが6 −の顧客のADDRESSを更新する例です。
UPDATE CUSTOMERS SET ADDRESS = 'Pune' WHERE ID = 6;
これで、CUSTOMERSテーブルには次のレコードが含まれます。次のクエリを実行することで、顧客テーブルのレコードを確認できます。
SELECT * FROM CUSTOMERS;
上記のクエリは次の結果を生成します。
+----+----------+-----+-----------+----------+
| ID | NAME | AGE | ADDRESS | SALARY |
+----+----------+-----+-----------+----------+
| 1 | Ramesh | 32 | Ahmedabad | 2000.00 |
| 2 | Khilan | 25 | Delhi | 1500.00 |
| 3 | kaushik | 23 | Kota | 2000.00 |
| 4 | Chaitali | 25 | Mumbai | 6500.00 |
| 5 | Hardik | 27 | Bhopal | 8500.00 |
| 6 | Komal | 22 | Pune | 4500.00 |
| 7 | Muffy | 24 | Indore | 10000.00 |
+----+----------+-----+-----------+----------+
CUSTOMERSテーブルのすべてのADDRESS列とSALARY列の値を変更するために、WHERE句を使用する必要はありません。UPDATEクエリは次のようになります-
UPDATE CUSTOMERS SET ADDRESS = 'Pune', SALARY = 1000.00;
これで、CUSTOMERSテーブルには次のレコードが含まれます。次のクエリを実行することで、顧客テーブルのレコードを確認できます。
SELECT * FROM CUSTOMERS;
上記のクエリは次の結果を生成します-
+----+----------+-----+---------+---------+
| ID | NAME | AGE | ADDRESS | SALARY |
+----+----------+-----+---------+---------+
| 1 | Ramesh | 32 | Pune | 1000.00 |
| 2 | Khilan | 25 | Pune | 1000.00 |
| 3 | kaushik | 23 | Pune | 1000.00 |
| 4 | Chaitali | 25 | Pune | 1000.00 |
| 5 | Hardik | 27 | Pune | 1000.00 |
| 6 | Komal | 22 | Pune | 1000.00 |
| 7 | Muffy | 24 | Pune | 1000.00 |
+----+----------+-----+---------+---------+