Muhamad Saad Nurul Ishlah, M.Comp.
Program Studi Sistem Informasi, Sekolah Vokasi,
Universitas Pakuan
Diasumsikan Anda sudah familiar dengan
Basis Data secara umum
Basis data SQL secara khusus
Bahasa kueri SQL
Materi ini hanya sebagai penyegaran dan referensi
Menyimpan data dalam tabel berisi baris (row) dan kolom (column) (spreadsheet…)
Field = pertemuan antara baris dan kolom
Fields berisi data, referensi ke field lain, atau referensi ke tabel lain
Baris diidentifikasikan dengan ID yang unik
Nama kolom unik di setiap tabel
TABEL_DAFTAR_KATA
_id | kata | definisi |
---|---|---|
1 | "alpha" | "huruf pertama" |
2 | "beta" | "huruf kedua" |
3 | "alpha" | "partikel" |
Mengimplementasikan basis data SQL dengan karakteristik:
self-contained (tidak memerlukan komponen lain)
serverless (tidak memerlukan backend server)
zero-configuration (tidak perlu dikonfigurasi khusus untuk aplikasi)
transactional (perubahan sebuah transaksi dalam SQLite dapat terjadi sepenuhnya atau tidak sama sekali)
Transaksi adalah urutan operasi yang dilakukan sebagai unit kerja logis tunggal.
Unit kerja logis harus memiliki empat properti
atomicity
consistency
isolation
durability
Semua perubahan pada sebuah transaksi dalam SQLite terjadi sepenuhnya atau tidak sama sekali, bahkan jika tindakan menulis perubahan ke disk terganggu oleh:
program crash
operating system crash
power failure.
Atomicity—Semua atau tidak ada modifikasi dilakukan
Consistency—Ketika transaksi selesai dilakukan, semua data harus berada dalam keadaan yang konsisten
Isolation—Modifikasi yang dilakukan oleh transaksi konkuren harus diisolasi dari modifikasi yang dilakukan oleh transaksi konkuren lainnya
Durability—Setelah transaksi selesai, efeknya secara permanen berada di sistem
Insert rows – Memasukkan baris
Delete rows – Menghapus baris
Update values in rows – Memperbaharui nilai pada baris
Retrieve rows that meet given criteria – Mengembalikan baris yang memenuhi kriteria yang diberikan
Formula Umum
SELECT kolom
FROM tabel
WHERE kolom="nilai"
SELECT kata, definisi
FROM TABEL_DAFTAR_KATA
WHERE kata="alpha"
SELECT kolom
Pilih kolom yang diinginkan
Gunakan * untuk mengembalikan semua kolom
FROM tabel — tentukan tabel sumber
WHERE — kata kunci untuk kondisi yang harus dipenuhi
kolom="nilai" — kondisi yang harus dipenuhi
Operator umum: =, LIKE, <, >
SELECT _id FROM TABEL_DAFTAR_KATA WHERE kata="alpha" AND definisi LIKE "%art%" ORDER BY kata DESC LIMIT 1
AND, OR—hubungkan beberapa kondisi dengan operator logis
ORDER BY—bisa dihilangkan untuk urutan default, atau ASC untuk naik, DESC untuk turun
LIMIT—dapatkan hasil dalam jumlah terbatas
1 | SELECT * FROM TABEL_DAFTAR_KATA |
Dapatkan semua isi tabel |
2 | SELECT kata, definisi FROM TABEL_DAFTAR_KATA WHERE _id > 2 |
Kembalikan [["alpha", "particle"]] |
3 | SELECT _id FROM TABEL_DAFTAR_KATA WHERE kata="alpha" AND definisi LIKE "%art%" |
Kembalikan id kata alpha dengan substring "art" [["3"]] |
4 | SELECT * FROM TABEL_DAFTAR_KATA ORDER BY kata DESC LIMIT 1 |
Sortir secara terbalik dan dapatkan item pertama. Penyortiran dilakukan oleh kolom pertama (_id) [["3","alpha","particle"]] |
5 | SELECT * FROM TABEL_DAFTAR_KATA LIMIT 2,1 |
Mengembalikan 1 item mulai dari posisi 2. Penghitungan posisi dimulai dari 1 (bukan nol!). Mengembalikan [["2","beta","second letter"]] |
String query = "SELECT * FROM TABEL_DAFTAR_KATA";
rawQuery(query, null);
query = "SELECT kata, definisi FROM TABEL_DAFTAR_KATA WHERE _id> ? ";
String[] selectionArgs = new String[]{"2"}
rawQuery(query, selectionArgs);
SELECT * FROM TABEL_DAFTAR_KATA WHERE kata="alpha" ORDER BY kata ASC LIMIT 2,1; Mengembalikan: [["alpha", "particle"]] |
String table = "TABEL_DAFTAR_KATA" String[] columns = new String[]{"*"}; String selection = "kata = ?" String[] selectionArgs = new String[]{"alpha"}; String groupBy = null; String having = null; String orderBy = "kata ASC" String limit = "2,1" query(table, columns, selection, selectionArgs, groupBy, having, orderBy, limit); |
Kueri selalu mengembalikan objek Cursor
Cursor adalah sebuah objek interface yang menyediakan akses read-write secara acak terhadap set hasil yang dikembalikan sebuah kueri pada basis data
⇒ Anggap Cursor sebagai pointer (penunjuk) ke baris pada tabel
Diterjemahkan dari slide Android Developer Fundamentasl V2: SQLite Primer