WHERE

Where adalah klausa SQL yang bisa dipasangkan dengan statement Select, update dan Delete. Kalian tidak perlu menggunakannya pada query yang berisi statement insert. Where kegunaannya sama dengan if dalam percabangan. Where membutuhkan kondisi atau syarat berdasarkan nama kolom. Sintak penulisannya adalah seperti di bawah ini.

  • Statement Where 'nama_kolom' {operator perbandingan} 'isi_kolom'

Pada contoh-contoh dalam tulisan saya sebelumnya, saya menggunakan tanda sama dengan (=). Kalian bisa menggunakan tanda perbandingan yang ada di bawah ini.

  • Sama dengan (=)
  • Kurang dari (<)
  • Lebih dari (>)
  • Lebih dari sama dengan (<=)
  • Lebih dari sama dengan (>=)
  • Tidak sama dengan (<> atau !=)

Contoh Query :

  • Select * From siswa where Nilai < 90
  • Select * From siswa where nilai >=50 AND Nilai <= 90
  • Select * From siswa where nilai <=50 OR Nilai >= 80

Selain itu, kalian juga bisa menggunakan klausa like jika kondisi yang digunakan berupa pola atau wildcard. Jika kondisinya ada lebih dari satu, kalian bisa menggunakan klausa And atau Or. And sama dengan operator && dalam bahasa C++. Sebaliknya, Or sama dengan operator ||. Contoh penggunaan And bisa kalian lihat di bawah ini.

//install librarynya kalau belum ada
#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[5][2]={{"Geri", "Saribumi"}, {"Panji", "Wonokarto"}, {"Tomi", "Gading"}, {"Romi", "Jakarta"}, {"Meidi", "Pringsewu"}};
	     
    sqlite3_exec(conn, "Create Table siswa(id INTEGER Primary Key, nama Text, alamat Text);", 0, 0, &err); 
    //tambahkan data
    for(int i=0;i<5;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 where id>=1 AND id<=2";
	sqlite3 *conn=NULL;
	sqlite3_stmt *stmt=NULL;
	sqlite3_open("databaseku.dat", &conn);
	
	//jika database kosong, tambah tabel
	if(conn){
	     isi_database(conn);
	}
	
	//gunakan query
	sqlite3_exec(conn, query, callback, 0, &err);
	sqlite3_close(conn);
	return 0;
}
Output :
id = 1
nama = Panji
alamat = Wonokarto

id = 2
nama = Tomi
alamat = Gading

Kalian bisa menggunakan klausa Or dengan cara yang sama dengan AND. Kalian juga bisa menggabungkannya karena kondisi yang digunakan sebagai syarat bisa lebih dari dua.