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!

SQLite - Python

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