SQLite - Python: Panduan untuk Pemula
Hai teman-teman, para ahli basis data masa depan! Saya sangat gembira menjadi panduan Anda dalam perjalanan menarik ini ke dunia SQLite dan Python. Sebagai seseorang yang telah mengajar ilmu komputer selama bertahun-tahun, saya dapat menjamin Anda bahwa setelah tutorial ini, Anda akan dapat mengoperasikan basis data seperti seorang profesional. Jadi, mari kita mulai!
Instalasi
Sebelum kita memulai petualangan ini, kita perlu memastikan bahwa kita memiliki tools yang tepat. Berita baiknya adalah, jika Anda telah menginstal Python (yang saya asumsikan Anda telah melakukannya), Anda sudah memiliki SQLite! Itu termasuk dalam Python, jadi tidak perlu instalasi tambahan. Apakah itu tidak praktis?
Modul sqlite3 Python APIs
Sekarang, mari kita bicarakan bintang utama pertunjukan kita: modul sqlite3. Modul ini adalah tiket Anda untuk bekerja dengan basis data SQLite di Python. Itu menyediakan sebuah set fungsi dan metode yang kita akan gunakan sepanjang tutorial ini.
Berikut adalah tabel metode utama yang kita akan gunakan:
Metode | Deskripsi |
---|---|
connect() | Membuat koneksi ke basis data |
cursor() | Membuat objek kursor untuk menjalankan perintah SQL |
execute() | Menjalankan perintah SQL tunggal |
executemany() | Menjalankan perintah SQL terhadap semua urutan parameter |
commit() | Melakukan commit transaksi saat ini |
rollback() | Mengembalikan semua perubahan ke basis data sejak panggilan terakhir ke commit() |
close() | Menutup koneksi basis data |
Jangan khawatir jika ini tampak sedikit mistis saat ini. Kita akan mengungkapkan setiap metode ini secara detil seiring kita maju.
Menyambung ke Basis Data
Ayo mulai dengan menyambung ke basis data. Itu seperti mengukir pintu rumah data Anda!
import sqlite3
# Menyambung ke basis data (atau buat jika belum ada)
conn = sqlite3.connect('my_first_db.db')
print("Koneksi basis data sukses!")
# Jangan lupa menutup koneksi saat Anda selesai
conn.close()
Dalam contoh ini, kita mengimpor modul sqlite3 dan menggunakan fungsi connect()
nya untuk membuat koneksi ke basis data yang dinamai 'my_first_db.db'. Jika basis data ini belum ada, SQLite akan membuatnya untuk kita. Bagaimana itu tidak bijaksana!
Membuat Tabel
Sekarang kita sudah tersambung, mari kita buat tabel. Picturkan tabel sebagai spreadsheet dalam basis data Anda.
import sqlite3
conn = sqlite3.connect('my_first_db.db')
cursor = conn.cursor()
# Membuat tabel
cursor.execute('''CREATE TABLE IF NOT EXISTS students
(id INTEGER PRIMARY KEY,
name TEXT NOT NULL,
age INTEGER)''')
print("Tabel sukses dibuat!")
conn.commit()
conn.close()
Di sini, kita membuat tabel yang dinamai 'students' dengan tiga kolom: id, name, dan age. Klausul IF NOT EXISTS
adalah jaring keselamatan kita - itu mencegah kesalahan jika kita secara tak sengaja mencoba membuat tabel yang sama dua kali.
Operasi INSERT
Saatnya menambahkan data ke tabel kita. Itu seperti mengisi spreadsheet kita!
import sqlite3
conn = sqlite3.connect('my_first_db.db')
cursor = conn.cursor()
# Menyisipkan baris tunggal data
cursor.execute("INSERT INTO students (name, age) VALUES (?, ?)", ("Alice", 22))
# Menyisipkan banyak baris data
students_data = [("Bob", 19), ("Charlie", 21), ("David", 20)]
cursor.executemany("INSERT INTO students (name, age) VALUES (?, ?)", students_data)
print("Data sukses disisipkan!")
conn.commit()
conn.close()
Dalam contoh ini, kita menyisipkan data ke tabel 'students'. Kita gunakan execute()
untuk penyisipan tunggal dan executemany()
untuk penyisipan banyak. Tanda ?
adalah placeholder untuk data kita, yang membantu mencegah serangan SQL injection. Keselamatan pertama!
Operasi SELECT
Sekarang, mari kita mengambil data kita. Itu seperti meminta basis data kita untuk menunjukkan apa yang diingatnya!
import sqlite3
conn = sqlite3.connect('my_first_db.db')
cursor = conn.cursor()
# Mengambil semua baris dari tabel students
cursor.execute("SELECT * FROM students")
# Mengambil semua baris
rows = cursor.fetchall()
for row in rows:
print(f"ID: {row[0]}, Name: {row[1]}, Age: {row[2]}")
conn.close()
Di sini, kita mengambil semua baris dari tabel 'students' dan mencetak mereka. Tanda *
dalam query SQL kita berarti "berikan saya semua". Itu seperti mengatakan "Buka!" kepada basis data kita.
Operasi UPDATE
kadang-kadang, kita perlu mengubah data kita. Mari kita memperbarui umur seorang siswa:
import sqlite3
conn = sqlite3.connect('my_first_db.db')
cursor = conn.cursor()
# Memperbarui umur siswa
cursor.execute("UPDATE students SET age = ? WHERE name = ?", (23, "Alice"))
print("Data sukses diperbarui!")
conn.commit()
conn.close()
Dalam contoh ini, kita memperbarui umur seorang siswa di tabel 'students'.
Credits: Image by storyset