SQLite - Python: Panduan Pemula

Hai sana, para ahli pangkalan data masa depan! Saya begitu senang untuk menjadi panduanmu dalam perjalanan menarik ini ke dunia SQLite dan Python. Sebagai seseorang yang telah mengajar sains komputer selama bertahun-tahun, saya dapat menjamin bahwa pada akhir tutorial ini, kamu akan mengoperasikan pangkalan data seperti seorang pro. Jadi, mari kita masuk ke dalam!

SQLite - Python

Instalasi

Sebelum kita memulai petualangan ini, kita perlu memastikan bahwa kita memiliki tools yang benar. Berita baiknya adalah, jika kamu memiliki Python terinstal (yang saya asumsikan kamu punya), kamu sudah memiliki SQLite! Itu disertakan dengan Python, jadi tidak perlu instalasi tambahan. Apakah itu tidak praktis?

Modul sqlite3 Python APIs

Sekarang, mari bicarakan bintang pertunjukan kami: modul sqlite3. Modul ini adalah tiketmu untuk bekerja dengan pangkalan 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 pangkalan data
cursor() Membuat objek kursor untuk menjalankan perintah SQL
execute() Menjalankan perintah SQL tunggal
executemany() Menjalankan perintah SQL melawan semua urutan parameter
commit() Melakukan komit transaksi saat ini
rollback() Membatalkan semua perubahan pada pangkalan data sejak panggilan terakhir ke commit()
close() Menutup koneksi pangkalan data

Jangan khawatir jika ini tampak sedikit mistis saat ini. Kita akan menjelajahi masing-masing dari ini secara detil saat kita terus maju.

Menyambung ke Pangkalan Data

Ayo mulai dengan menyambung ke pangkalan data. Itu seperti mengetuk pintu rumah datamu!

import sqlite3

# Menyambung ke pangkalan data (atau buatnya jika belum ada)
conn = sqlite3.connect('my_first_db.db')

print("Koneksi pangkalan data berhasil!")

# Jangan lupa tutup koneksi saat kamu selesai
conn.close()

Dalam contoh ini, kita mengimpor modul sqlite3 dan menggunakan fungsi connect()nya untuk membuat koneksi ke pangkalan data yang dinamai 'my_first_db.db'. Jika pangkalan data ini belum ada, SQLite akan membuatnya untuk kita. Bagaimana itu bukanlah berhati-hati!

Membuat Tabel

Sekarang kita sudah tersambung, mari buat sebuah tabel. Picturkan tabel itu seperti spreadsheet dalam pangkalan datamu.

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 berhasil 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 tidak sengaja mencoba membuat tabel yang sama dua kali.

Operasi INSERT

Waktunya menambahkan beberapa 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 berhasil disisipkan!")

conn.commit()
conn.close()

Dalam contoh ini, kita menyisipkan data ke tabel 'students'. Kita gunakan execute() untuk penyisipan tunggal dan executemany() untuk banyak penyisipan. Tanda ? adalah placeholder untuk data kita, yang membantu mencegah serangan SQL injection. Keselamatan pertama!

Operasi SELECT

Sekarang, mariambil data kita. Itu seperti meminta pangkalan datamu untuk menunjukkan apa yang dia ingat!

import sqlite3

conn = sqlite3.connect('my_first_db.db')
cursor = conn.cursor()

# Memilih 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 memilih semua baris dari tabel 'students' dan mencetaknya. Tanda * dalam queri SQL kita berarti "berikan saya semuanya". Itu seperti mengatakan "Buka kunci!" ke pangkalan datamu.

Operasi UPDATE

kadang-kadang, kita perlu mengubah data kita. Mari kita perbarui umur seorang murid:

import sqlite3

conn = sqlite3.connect('my_first_db.db')
cursor = conn.cursor()

# Memperbarui umur murid
cursor.execute("UPDATE students SET age = ? WHERE name = ?", (23, "Alice"))

print("Data berhasil diperbarui!")

conn.commit()
conn.close()

Dalam contoh ini, kita memperbarui umur murid di tabel 'students'.

Credits: Image by storyset