Di tutorial sebelumnya Anda telah belajar tentang penggunaan operator dan clausa di database Mysql.
Pada tutorial bassic Mysql bagian ke-6 ini, kita akan belajar tentang perbedaan utama antara statement MySQL REPLACE dan statement standar INSERT INTO dan UPDATE.
Stetement ini adalah ekstensi Standar SQL, yang menyisipkan atau memperbarui data dalam sebuah tabel.
Anda dapat menggunakan dua jenis sintaks untuk menyisipkan atau memperbarui data dengan pernyataan REPLACE.
Sintaks pertama sangat mirip dengan pernyataan SQL INSERT INTO standar, di mana Anda menggunakan perintah REPLACE, perhatikan kode berikut:
REPLACE INTO table_name (column1name, column2name, ...)
VALUES (value1, value2, ...);
Sintaks kedua mirip dengan pernyataan SQL UPDATE standar, di mana Anda menggunakan perintah REPLACE dengan kata kunci SET untuk memperbarui data dalam tabel, perhatikan kode berikut:
REPLACE INTO table_name SET column1name = value, column2name = value, ... ;
Statement ini akan memeriksa apakah kunci unik sudah ada di tabel. Jika YA maka akan memberikan response error, jika tidak maka data baru akan terbentuk.
Misalkan mengembalikan nilai "FALSE". Dalam hal ini, proses penyisipan data selesai, dan catatan data baru ditambahkan ke database.
Perhatikan bagan alur berikut ini:
ilustrasi statement inser into // source coursera
Misalkan mengembalikan nilai "FALSE". Dalam hal ini, proses update data ditolak, dan MySQL menghasilkan response error.
Misalkan mengembalikan nilai "True", dan proses update data selesai, kemudian data yang ada diubah dengan data baru.
Berikut ini ilustrasi bagan alur yang menunjukkan cara kerja pernyataan UPDATE :
ilustrasi bagan update data mysql // source coursera
Pernyataan REPLACE INTO digunakan untuk memasukkan record baru atau memodifikasi record yang sudah ada.
Dari kediua kondisi diatas, mysql engine akan memeriksa apakah kunci unik dari catatan yang diusulkan sudah ada di tabel.
Misalkan mengembalikan nilai "FALSE". Dalam hal ini, pernyataan REPLACE menyisipkan catatan yang mirip dengan pernyataan INSERT INTO.
Misalkan nilai kunci sudah ada di tabel (dengan kata lain, kunci duplikat). Dalam hal ini, pernyataan REPLACE menghapus catatan data yang ada dan menggantinya dengan catatan data baru.
Ini terjadi terlepas dari apakah Anda menggunakan sintaks pernyataan REPLACE pertama atau kedua.
Bagan alur berikut menguraikan cara kerja pernyataan REPLACE INTO :
ilustrasi replace into mysql // source coursera
Setelah pernyataan REPLACE INTO digunakan untuk menyisipkan atau memodifikasi data, pertama-tama ditentukan apakah record data baru sudah ada di tabel, kemudian memeriksa apakah PRIMARY atau UNIQUE KEY cocok dengan salah satu catatan yang ada.
Jika tidak ada kunci yang cocok, REPLACE berfungsi seperti pernyataan INSERT biasa.
Jika tidak, statement ini akan menghapus record yang ada dan menggantinya dengan yang baru. Hal Ini dianggap sebagai modifikasi atau pembaruan dari catatan yang ada.
Namun, akan lebih baik jika Anda berhati-hati di sini. Misalkan Anda tidak menentukan nilai untuk kolom dalam klausa SET.
Statement REPLACE menggunakan nilai default (jika nilai default telah ditetapkan). Jika tidak, maka akan di set sebagai NULL.
CREATE TABLE Orders (OrderID INT NOT NULL PRIMARY KEY, ClientID VARCHAR(10), ProductID VARCHAR(10), Quantity INT, Cost DECIMAL(6,2));
Kemudian tambahkan beberapa data
INSERT INTO Orders (OrderID, ClientID, ProductID, Quantity, Cost) VALUES (1, "Cl1", "P1", 10, 500), (2, "Cl2", "P2", 5, 100), (3, "Cl3", "P3", 20, 800), (4, "Cl4", "P4", 15, 150), (5, "Cl3", "P3", 10, 450), (6, "Cl2", "P2", 5, 800), (7, "Cl1", "P4", 22, 1200), (8, "Cl1", "P1", 15, 150);
Tugas 1: Tulis pernyataan SQL REPLACE yang menyisipkan dua perintah baru dengan detail berikut:
Data orders 9: