Pengantar
Setelah sepotong data memasuki database, sangat tidak mungkin data itu tetap statis sepanjang waktu yang dihabiskan dalam sebuah tabel. Data diperbarui untuk mencerminkan perubahan dalam sistem yang diwakilinya agar tetap relevan dan mutakhir. SQLite memungkinkan Anda untuk mengubah nilai dalam catatan menggunakan UPDATE
Perintah SQL.
UPDATE
fungsinya mirip dengan INSERT
(di mana Anda menentukan kolom dan nilai yang diinginkan) dan DELETE
(di mana Anda memberikan kriteria yang diperlukan untuk menargetkan catatan tertentu). Anda juga dapat mengubah data baik satu per satu atau secara massal. Pada artikel ini, kita akan mempelajari cara menggunakan UPDATE
efektif untuk mengelola data Anda yang sudah disimpan dalam tabel.
Menggunakan UPDATE
untuk mengubah data
Sintaks dasar UPDATE
perintah terlihat seperti ini:
UPDATE my_tableSET column1 = value1, column2 = value2,WHERE id = 1;
Struktur dasar melibatkan tiga klausa terpisah:
- menentukan tabel untuk ditindaklanjuti
- menyediakan kolom yang ingin Anda perbarui serta nilai barunya
- mendefinisikan kriteria apa pun yang SQLite perlu evaluasi untuk menentukan record mana yang cocok
Meskipun Anda dapat menetapkan nilai secara langsung ke kolom seperti yang kami lakukan di atas, Anda juga dapat menggunakan sintaks daftar kolom, seperti yang sering terlihat di INSERT
perintah.
Misalnya, kita dapat mengubah contoh di atas menjadi seperti berikut:
UPDATE my_tableSET (column1, column2) = (value1, value2)WHERE id = 1;
Pengembalian data yang dimodifikasi oleh UPDATE
perintah
Secara default, SQLite tidak menunjukkan jumlah baris yang dipengaruhi oleh UPDATE
penyataan. Namun, SQLite menambahkan RETURNING
klausa yang dimodelkan setelah PostgreSQL dalam versi 3.35.0
. Klausa ini menyebabkan perintah mengembalikan semua atau sebagian catatan yang telah diubah.
Anda dapat menggunakan tanda bintang *
simbol untuk mengembalikan semua kolom dari baris yang dimodifikasi seperti SELECT
pernyataan:
UPDATE my_tableSET column1 = value1, column2 = value2,WHERE id = 1RETURNING *;
Selain itu, Anda juga dapat menentukan kolom persis yang ingin Anda tampilkan dengan/tanpa alias menggunakan AS
:
UPDATE my_tableSET column1 = value1, column2 = value2WHERE id = 1RETURNING column1 AS 'first column';
Memperbarui catatan berdasarkan nilai di tabel lain
Memperbarui data berdasarkan data eksternal baru adalah proses yang relatif efisien. Anda hanya perlu menyediakan tabel, kolom, nilai baru, dan kriteria penargetan.
Namun, dengan SQLite Anda juga dapat menggunakan UPDATE
untuk memperbarui nilai tabel secara kondisional berdasarkan informasi di tabel lain dalam database Anda. Sintaks dasarnya akan terlihat seperti ini:
UPDATE table1SET table1.column1 =( SELECT table2.column1 FROM table2 WHERE table1.column2 = table2.column2);
Di sini, kami langsung memperbarui nilai column1
di table1
menjadi kembalinya SELECT
subquery pada table2
, tetapi hanya di baris di mana column2
dari table1
cocok dengan column2
dari table2
. FROM
klausa menunjukkan koneksi antara dua tabel dan WHERE
menentukan kondisinya.
Sebagai contoh, misalkan kita memiliki dua tabel bernama book
dan author
.
CREATE TABLE author ( id INTEGER PRIMARY KEY, first_name TEXT, last_name TEXT, last_publication TEXT);CREATE TABLE book ( id INTEGER PRIMARY KEY, author_id INT REFERENCES author.id title TEXT, publication_year INTEGER);INSERT INTO author (first_name, last_name)VALUES ('Leo', 'Tolstoy'), ('James', 'Joyce'), ('Jean-Paul', 'Sarte'); INSERT INTO book (author_id, title, publication_year)VALUES (1, 'Anna Karenina', '1877'), (1, 'War and Peace', '1867'), (2, 'Ulysses', '1920'), (2, 'Dubliners', '1914'), (3, 'Nausea', '1938');
Kedua tabel ini memiliki relasi dengan book.author_id
referensi author.id
. Saat ini last_publication
untuk author
tabel adalah NULL
. Kami dapat mengisinya dengan buku terbaru penulis yang diterbitkan di book
kami tabel menggunakan FROM
dan WHERE
klausa untuk menyatukan dua tabel.
Di sini, kami menunjukkan contoh memperbarui last_publication
:
UPDATE author SET last_publication=( SELECT title FROM book WHERE author_id = author.id ORDER BY author_id, publication_year DESC);
Jika Anda menanyakan author
tabel sekarang, ini akan menunjukkan kepada Anda judul publikasi terbaru mereka di database:
SELECT * FROM author;
+------------+------------+-----------+--------------------------+ id first_name last_name last_publication +-------------+------------+-----------+--------------------------+ 1 Leo Tolstoy Anna Karenina 2 James Joyce Ulysses 3 Jean-Paul Sarte Nausea +-------------+------------+-----------+--------------------------+
Kesimpulan
Dalam panduan ini, kami melihat cara dasar Anda dapat mengubah data yang ada di dalam tabel menggunakan UPDATE
memerintah. Eksekusi konsep dasar ini memungkinkan Anda untuk menentukan kriteria yang tepat yang diperlukan untuk mengidentifikasi baris yang ada dalam tabel, memperbarui nama kolom dengan nilai, dan secara opsional mengembalikan baris yang terpengaruh dengan RETURNING
. UPDATE
perintah sangat penting untuk mengelola data Anda setelah penyisipan awal ke database Anda.