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.