Delete

Kalau kalian sudah bisa menambahkan data ke dalam tabel dengan insert, kalian bisa mulai belajar cara untuk menghapus data di dalam tabel. Untuk menghapus data di dalam tabel SQL, kalian bisa menggunakan "Delete". Sintaks yang bisa kalian gunakan adalah sebagai berikut.

  • Delete from nama_tabel 
  • Delete from nama_tabel Where syarat

Contoh Query :

  • Delete From siswa WHERE id='1'

Untuk menghapus satu data di dalam tabel, data tersebut perlu kolom yang isinya unik. Isi kolom itu digunakan sebagai syarat atau kondisi dalam penghapusan. Jika tidak ada syarat, maka semua data akan dihapus.

#include <iostream>
#include <sqlite3.h>

char *err;
typedef char stringku[30];

int callback(void *notused, int jkolom, char **dataku, char **kolom){
    for(int i=0;i<jkolom;i++)printf("%s = %s\n", kolom[i], dataku[i]);
    printf("\n");
    return 0;
}

void isi_database(sqlite3 *conn){
    char query[255];
    static stringku data[3][2]={{"Geri", "Saribumi"}, {"Panji", "Wonokarto"}, {"Tomi", "Gading"}};
	     
    sqlite3_exec(conn, "Create Table siswa(id INTEGER Primary Key, nama Text, alamat Text);", 0, 0, &err); 
    //tambahkan data
    for(int i=0;i<3;i++){
         sprintf(query, "INSERT INTO siswa(id, nama, alamat) VALUES('%d','%s', '%s')", i, data[i][0], data[i][1]);
         sqlite3_exec(conn, query, 0, 0, &err);
    }
}

int main(){
    int res=0;
    char query[255]="SELECT * FROM siswa";
    sqlite3 *conn=NULL;
    sqlite3_stmt *stmt=NULL;
    sqlite3_open("databaseku.dat", &conn);
	
    //jika database kosong, tambah tabel
    sqlite3_exec(conn, "Drop Table siswa", 0, 0, &err); 
    isi_database(conn);
	
    const unsigned char *isi;
    //tampilkan data
    sqlite3_exec(conn, "Select * From siswa", callback, 0, &err);
    printf("===\nHapus data .... \n====\n");
    //gunakan query
    sqlite3_exec(conn, "Delete From siswa where Id='1'", 0, 0, &err);
    //tampilkan data
    sqlite3_exec(conn, "Select * From siswa", callback, 0, &err);

    sqlite3_close(conn);
    return 0;
}
Output :
id = 0
nama = Geri
alamat = Saribumi

id = 1
nama = Panji
alamat = Wonokarto

id = 2
nama = Tomi
alamat = Gading

===
Hapus data ....
====
id = 0
nama = Geri
alamat = Saribumi

id = 2
nama = Tomi
alamat = Gading

Kode program di atas menghapus data yang Id-nya bernilai 1 menggunakan statement delete. Setiap kali program dijalankan, tabel akan dihapus dengan statement "Drop" sebelum dibuat ulang dengan create.

Sama seperti update dan select, syarat tidak harus menggunakan tanda sama dengan jika kolom yang jadi syarat berisi angka. Kalian bisa ubah nilai setelah sama dengan dengan 0 atau 1 untuk mengubah data yang lain.