Baza danych H2 - aktualizacja
Zapytanie UPDATE służy do aktualizowania lub modyfikowania istniejących rekordów w tabeli. Możemy użyć klauzuli WHERE z zapytaniem UPDATE, aby zaktualizować wybrane wiersze, w przeciwnym razie wpłynie to na wszystkie wiersze.
Składnia
Poniżej znajduje się podstawowa składnia zapytania UPDATE.
UPDATE tableName [ [ AS ] newTableAlias ] SET
{ { columnName = { DEFAULT | expression } } [,...] } |
{ ( columnName [,...] ) = ( select ) }
[ WHERE expression ] [ ORDER BY order [,...] ] [ LIMIT expression ]
W tej składni UPDATE możemy łączyć więcej niż jeden warunek za pomocą klauzul AND lub OR.
Przykład
Rozważmy tabelę CUSTOMER zawierającą następujące rekordy.
+----+----------+-----+-----------+----------+
| 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 |
+----+----------+-----+-----------+----------+
Jeśli chcesz uzyskać tabelę klientów wraz z podanymi danymi, wykonaj następujące zapytania.
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);
Poniższe polecenie jest przykładem, które zaktualizuje ADRES dla klienta o identyfikatorze 6 -
UPDATE CUSTOMERS SET ADDRESS = 'Pune' WHERE ID = 6;
Teraz tabela CUSTOMERS będzie miała następujące rekordy. Możemy sprawdzić rekordy tabeli klientów, wykonując następujące zapytanie.
SELECT * FROM CUSTOMERS;
Powyższe zapytanie daje następujący wynik.
+----+----------+-----+-----------+----------+
| 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 |
+----+----------+-----+-----------+----------+
Aby zmodyfikować wszystkie wartości kolumn ADDRESS i SALARY w tabeli CUSTOMERS, nie musimy używać klauzuli WHERE. Zapytanie UPDATE wyglądałoby następująco -
UPDATE CUSTOMERS SET ADDRESS = 'Pune', SALARY = 1000.00;
Teraz tabela CUSTOMERS będzie miała następujące rekordy. Możemy sprawdzić rekordy tabeli klientów, wykonując następujące zapytanie.
SELECT * FROM CUSTOMERS;
Powyższe zapytanie daje następujący wynik -
+----+----------+-----+---------+---------+
| 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 |
+----+----------+-----+---------+---------+