SQLite
 sql >> Teknologi Basis Data >  >> RDS >> SQLite

Pernyataan SQLite REPLACE

Ringkasan :dalam tutorial ini, Anda akan belajar bagaimana menggunakan SQLite REPLACE pernyataan untuk menyisipkan atau mengganti baris yang ada dalam tabel.

Pengantar SQLite REPLACE pernyataan

Ide dari REPLACE pernyataan adalah bahwa ketika UNIQUE atau PRIMARY KEY pelanggaran kendala terjadi, ia melakukan hal berikut:

  • Pertama, hapus baris yang ada yang menyebabkan pelanggaran batasan.
  • Kedua, masukkan baris baru.

Pada langkah kedua, jika ada pelanggaran batasan mis., NOT NULL kendala terjadi, REPLACE pernyataan akan membatalkan tindakan dan mengembalikan transaksi.

Berikut ini mengilustrasikan sintaks REPLACE pernyataan.

INSERT OR REPLACE INTO table(column_list)
VALUES(value_list);Code language: SQL (Structured Query Language) (sql)

Atau dalam bentuk singkat:

REPLACE INTO table(column_list)
VALUES(value_list);Code language: SQL (Structured Query Language) (sql)

Mari kita lihat beberapa contoh penggunaan SQLite REPLACE pernyataan untuk memahami cara kerjanya.

SQLite REPLACE contoh pernyataan

Pertama, buat tabel baru bernama positions dengan struktur berikut.

CREATE TABLE IF NOT EXISTS positions (
	id INTEGER PRIMARY KEY,
	title TEXT NOT NULL,
	min_salary NUMERIC
);Code language: SQL (Structured Query Language) (sql)

Cobalah

Kedua, masukkan beberapa baris ke dalam positions tabel.

INSERT INTO positions (title, min_salary)
VALUES ('DBA', 120000),
       ('Developer', 100000),
       ('Architect', 150000);Code language: SQL (Structured Query Language) (sql)

Cobalah

Ketiga, verifikasi sisipan menggunakan SELECT berikut pernyataan.

SELECT * FROM positions;Code language: SQL (Structured Query Language) (sql)

Cobalah

Pernyataan berikut membuat indeks unik pada title kolom positions tabel untuk memastikan tidak ada duplikat judul posisi:

CREATE UNIQUE INDEX idx_positions_title 
ON positions (title);Code language: SQL (Structured Query Language) (sql)

Cobalah

Misalkan, Anda ingin menambahkan posisi ke dalam positions tabel jika tidak ada, jika posisinya ada, perbarui yang sekarang.

Berikut REPLACE pernyataan menyisipkan baris baru ke dalam positions tabel karena posisi judul Full Stack Developer tidak dalam positions tabel.

REPLACE INTO positions (title, min_salary)
VALUES('Full Stack Developer', 140000);Code language: SQL (Structured Query Language) (sql)

Cobalah

Anda dapat memverifikasi REPLACE operasi menggunakan SELECT pernyataan.

SELECT
	id,title,min_salary
FROM
	positions;Code language: SQL (Structured Query Language) (sql)

Cobalah

Lihat pernyataan berikut.

REPLACE INTO positions (title, min_salary)
VALUES('DBA', 170000);
Code language: SQL (Structured Query Language) (sql)

Cobalah

Pertama, SQLite memeriksa UNIQUE kendala.

Kedua, karena pernyataan ini melanggar UNIQUE kendala dengan mencoba menambahkan DBA judul yang sudah ada, SQLite menghapus baris yang ada.

Ketiga, SQLite menyisipkan baris baru dengan data yang disediakan oleh REPLACE pernyataan.

Perhatikan bahwa REPLACE pernyataan berarti INSERT atau REPLACE , bukan INSERT atau UPDATE .

Lihat pernyataan berikut.

REPLACE INTO positions (id, min_salary)
VALUES(2, 110000);Code language: SQL (Structured Query Language) (sql)

Cobalah

Apa yang coba dilakukan oleh pernyataan itu adalah memperbarui min_salary untuk posisi dengan id 2 yaitu developer.

Pertama, posisi dengan id 2 sudah ada, REPLACE pernyataan menghapusnya.

Kemudian, SQLite mencoba menyisipkan baris baru dengan dua kolom:( id , min_salary ). Namun, itu melanggar NOT NULL batasan kolom judul. Oleh karena itu, SQLite membatalkan transaksi.

Jika title kolom tidak memiliki NOT NULL kendala, REPLACE pernyataan akan menyisipkan baris baru dengan kolom judul NULL .

Dalam tutorial ini, kami telah menunjukkan cara menggunakan SQLite REPLACE pernyataan untuk menyisipkan atau mengganti baris dalam tabel.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Secara Otomatis Buka Hasil Kueri SQLite di Excel

  2. Kurangi Tahun dari Tanggal di SQLite

  3. Memasukkan tanggal dan waktu saat ini dalam database SQLite

  4. Cadangkan Database SQLite

  5. Kesalahan SQLiteDatabase, Log tidak membantu