Mengubah dan Merancang · Pelajaran 7 dari 9

INSERT, UPDATE, dan DELETE

9 menit baca · BelajarCode

SQL
1CREATE TABLE rekening (2    id INTEGER PRIMARY KEY,3    pemilik TEXT NOT NULL,4    saldo INTEGER NOT NULL CHECK (saldo >= 0)5);67INSERT INTO rekening (pemilik, saldo) VALUES ('Andi', 500000);8INSERT INTO rekening (pemilik, saldo) VALUES ('Bela', 250000), ('Citra', 100000);910UPDATE rekening SET saldo = saldo + 50000 WHERE pemilik = 'Citra';11DELETE FROM rekening WHERE saldo < 200000;1213SELECT * FROM rekening;
Hasil
id | pemilik | saldo
1 | Andi | 500000
2 | Bela | 250000
  • INSERT INTO bisa menambah satu atau beberapa baris sekaligus.
  • UPDATE ... SET ... WHERE mengubah baris yang memenuhi syarat. Saldo Citra menjadi 150000.
  • DELETE FROM ... WHERE menghapus baris yang memenuhi syarat. Citra terhapus karena saldonya di bawah 200000.

Selalu periksa WHERE sebelum UPDATE dan DELETE

UPDATE rekening SET saldo = 0; tanpa WHERE mengubah semua baris. DELETE FROM rekening; menghapus semua baris. Kebiasaan yang aman: jalankan dulu SELECT dengan WHERE yang sama untuk melihat baris mana yang akan terkena.

Transaksi

Memindahkan uang butuh dua perubahan: mengurangi saldo pengirim dan menambah saldo penerima. Keduanya harus berhasil bersama, atau gagal bersama. Transaksi menjamin hal itu.

SQL
1BEGIN;2UPDATE rekening SET saldo = saldo - 100000 WHERE pemilik = 'Andi';3UPDATE rekening SET saldo = saldo + 100000 WHERE pemilik = 'Bela';4COMMIT;56SELECT pemilik, saldo FROM rekening;
Hasil
pemilik | saldo
Andi | 400000
Bela | 350000
  • BEGIN memulai transaksi.
  • COMMIT menyimpan semua perubahan secara permanen.
  • ROLLBACK membatalkan semua perubahan sejak BEGIN, misalnya jika salah satu perintah gagal.

Sifat yang dijamin transaksi sering disingkat ACID: atomic (semua atau tidak sama sekali), consistent (aturan data tetap terpenuhi), isolated (transaksi tidak saling mengganggu), dan durable (yang sudah di-commit tidak hilang walaupun listrik padam).

Cek pemahaman

Apa akibat menjalankan DELETE FROM rekening; tanpa WHERE?

Latihan

Naikkan harga satu kategori

Buat tabel menu berisi nama, kategori, dan harga. Isi dengan beberapa menu, lalu naikkan harga semua minuman sebesar 10% dan tampilkan hasilnya.

Tandai pelajaran ini selesai

Masuk ke aplikasi untuk mencatat kemajuan, lalu lanjutkan ke pelajaran berikutnya dari perangkat mana pun.

Buka di aplikasi