H2 Veritabanı - Güncelleme

UPDATE sorgusu, bir tablodaki mevcut kayıtları güncellemek veya değiştirmek için kullanılır. Seçili satırları güncellemek için UPDATE sorgusu ile WHERE cümlesini kullanabiliriz, aksi takdirde tüm satırlar etkilenecektir.

Sözdizimi

UPDATE sorgusunun temel sözdizimi aşağıdadır.

UPDATE tableName [ [ AS ] newTableAlias ] SET 
{ { columnName = { DEFAULT | expression } } [,...] } | 
{ ( columnName [,...] ) = ( select ) } 
[ WHERE expression ] [ ORDER BY order [,...] ] [ LIMIT expression ]

Bu UPDATE sözdiziminde, AND veya OR cümlelerini kullanarak birden fazla koşulu birleştirebiliriz.

Misal

Aşağıdaki kayıtlara sahip MÜŞTERİ tablosunu düşünün.

+----+----------+-----+-----------+----------+ 
| 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 | 
+----+----------+-----+-----------+----------+

Verilen verilerle birlikte müşteri tablosunu da almak istiyorsanız aşağıdaki sorguları yürütün.

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);

Aşağıdaki komut, kimliği 6 olan bir müşteri için ADDRESS'i güncelleyecek bir örnektir -

UPDATE CUSTOMERS SET ADDRESS = 'Pune' WHERE ID = 6;

Şimdi, MÜŞTERİLER tablosu aşağıdaki kayıtlara sahip olacaktır. Aşağıdaki sorguyu yürüterek müşteri tablo kayıtlarını kontrol edebiliriz.

SELECT * FROM CUSTOMERS;

Yukarıdaki sorgu aşağıdaki sonucu verir.

+----+----------+-----+-----------+----------+ 
| 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 | 
+----+----------+-----+-----------+----------+

MÜŞTERİLER tablosundaki tüm ADRES ve MAAŞ sütun değerlerini değiştirmek için WHERE cümlesini kullanmamız gerekmez. UPDATE sorgusu aşağıdaki gibi olacaktır -

UPDATE CUSTOMERS SET ADDRESS = 'Pune', SALARY = 1000.00;

Şimdi, MÜŞTERİLER tablosu aşağıdaki kayıtlara sahip olacaktır. Aşağıdaki sorguyu yürüterek müşteri tablo kayıtlarını kontrol edebiliriz.

SELECT * FROM CUSTOMERS;

Yukarıdaki sorgu şu sonucu verir -

+----+----------+-----+---------+---------+ 
| 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 | 
+----+----------+-----+---------+---------+