![[images/python-sqlite-db/jan-antonin-kolar-lRoX0shwjUQ-unsplash.jpg|Thumbnail of Python dan SQLite Database]]
Kali ini saya akan membahas tentang cara menghubungkan database dan memanipulasi data pada SQLite database melalui bahasa pemrograman Python.
Singkatnya SQLite adalah bentuk database paling sederhana yang tidak memerlukan instalasi apapun didepan. Hanya cukup menggunakan library sqlite3
, yang bahkan sudah built-in dengan bahasa pemrograman Python. Programmer hanya cukup mengeksekusi satu SQL query, dan secara otomatis database akan dibuat dengan sendirinya sesuai alamat database yang dimaksud didalam direktori.
Python progamming akan menjadi interface untuk mengeksekusi SQL query sehingga memungkinkan user untuk melakukan hal seperti Create, Read, Update, dan Delete (CRUD) seperti pada umumnya ketika bekerja dengan database.
Dalam catatan ini ada tiga poin yang akan saya sampaikan:
- Cara terhubung dengan SQLite database
- Cara mengeksekusi SQL query menggunakan Python, dan
- Cara membuat (create), membaca (read), mengubah (udpate), dan menghapus (delete)
Cara terhubung dengan SQLite database
Terhubung dengan SQLite database sangat mudah. User hanya cukup membuat koneksi dengan database yang dituju sebagai berikut
import sqlite3
conn = sqlite3.connect("alamat-database.db")
conn.close()
# atau
with sqlite3.connect("alamat-database.db") as conn:
curr = conn.cursor()
Cara mengeksekusi SQL query menggunakan Python
Dari code snippet diatas, kamu mungkin memperhatikan ada kode curr = conn.cursor()
, baris kode tersebut digunakan untuk mereferensi SQL cursor yang akan mengeksekusi SQL query.
User baru bisa mengeksekusi SQL query setelah terhubung dengan database dan SQL query pada dasarnya adalah bahasa pemrograman SQL untuk membuat tabel dan memanipulasi SQL database.
Berikut adalah cara mengeksekusi SQL query untuk membuat tabel dalam suatu database:
import sqlite3
with sqlite3.connect("database-ku.db") as conn:
curr = conn.cursor()
curr.execute("""
CREATE TABLE tabel (
kolom1 TEXT,
kolom2 INTEGER NOT NULL
);
""")
conn.commit()
Perintah terakhir seperti conn.commit()
berarti memberi perintah tambahan untuk mengimplementasi perubahan tersebut kedalam database. Karena jika tidak, curr.execute()
hanya akan berakhir pada tahap kalkulasi dan tidak akan dilanjutkan pada tahap implementasi perintah pada database yang dimaksud. Oleh karenanya dibutuhkan metode commit()
.
Untuk melihat bagaimana tabel tersebut user dapat menginstall VS Code extension seperti SQLite Viewer atau database driver seperti DB Browser atau DBeaver seperti dibawah:
-
![[images/python-sqlite-db/Untitled.png|sqlite viewer vs code extension]]
-
![[images/python-sqlite-db/Untitled 1.png|db browser for sqlite]]
-
![[images/python-sqlite-db/Untitled 2.png|dbeaver]]
SQLite CRUD
CRUD adalah kegiatan utama ketika bekerja dengan database. Pada dasarnya syntax SQLite pada Python hanyalah menghubungkan dan menjalankan SQL query yang dituliskan. Sehingga aktifitas seperti membuat, membaca, mengubah, dan menghapus data didalam database akan dilakukan oleh SQL query itu sendiri dan Python hanyalah perantaranya.
-
Membuat (Create)
Contoh create sebenarnya dapat dilihat pada kode sebelumnya diatas. Namun singkatnya, Python SQLite melakukan
execute
kemudiancommit
untuk menerapkan perintah pada database. -
Membaca (Read)
Aktifias membaca disini lebih pada mengambil data didalam suatu database. Ketika tabel dibuat, user dapat menajalan SQL query untuk membaca kolom data yang dimaksud dari database. Umumnya SQL query yang digunakan untuk membaca data adalah perintah SELECT sebagai berikut:
import sqlite3 with sqlite3.connect("database-ku.db") as conn: curr = conn.cursor() curr.execute("SELECT * FROM tabel;") result = curr.fetchall()
SELECT * FROM tabel
dibaca “Pilih semua kolom dari tabeltabel
.” Dan pada baris terakhir,fetchall()
digunakan untuk mengambil data yang ditampung didalam memory sementara dari SQLite client kemudian memindahkannya kedalam variabelresult
. Selainfetchall()
, user juga dapat mengambil sebagian saja dari baris data yang dibaca oleh SQL query menggunakan metode lain sepertifetchone()
untuk ambil satu baris data danfetchmany(n)
untuk mengambil n baris data. -
Mengubah (Update)
Sama halnya dengan membuat tabel, ketika ingin mengubah suatu data didalam database, Python harus menjalankan perintah commit() untuk mengimplementasi perubahan tersebut. Berbeda dengan query CREATE TABLE, untuk mengubah suatu data user harus menggunakan perintah UPDATE dan SET sebagai berikut:
import sqlite3 with sqlite3.connect("database-ku.db") as conn: curr = conn.cursor() curr.execute(""" UPDATE tabel SET kolom1='Test', kolom2=0 WHERE kolom2=1; """) conn.commit()
Perintah
UPDATE tabel SET kolom1='Test', kolom2=0 WHERE kolom2=1;
dapat diartikan sebagai “Padatabel
ubahkolom1
menjadi “Test” dankolom2
menjadi 0 untukkolom2
sama dengan 1.” Dancommit
untuk menerapkan perubahan tersebut pada database. -
Menghapus (Delete)
Menghapus merupakan aktifitas yang sama seperti
CREATE
danUPDATE
, ia mengubah database dalam tujuan untuk menghilangkan satu atau sebagian data yang dituju lalu kemudian menerapkan perubahan tersebut kedalam database melalui perintahcommit
sebagai berikut.import sqlite3 with sqlite3.connect("database-ku.db") as conn: curr = conn.cursor() curr.execute(""" DELETE FROM tabel WHERE kolom2=0; """) conn.commit()
Klausa
DELETE
danWHERE
adalah perintah yang cukup krusial ketika user ingin menghapus data didalam database. TanpaWHERE
, SQL query akan menghapus semua data padatabel
yang dituju.DELETE FROM tabel WHERE kolom2=0;
dapat diartikan sebagai “Hapus dari tabeltabel
untuk setiap kolom2 sama dengan 0.”
Semoga tutorial terkait SQLite database dan Python programming ini cukup membantu. Trimakasih sudah menyempatkan waktu untuk membaca.