- Perangkat tertanam dan IoT.
- Analisis data.
- Mentransfer data dari satu sistem ke sistem lainnya.
- Pengarsipan data dan (atau) pengemasan data ke dalam wadah.
- Penyimpanan data dalam database eksternal atau sementara.
- Pengganti database perusahaan yang digunakan untuk tujuan demonstrasi atau pengujian.
- Pelatihan, penguasaan teknik praktis bekerja dengan database oleh pemula.
- Membuat prototipe dan meneliti ekstensi eksperimental dari bahasa SQL.
Anda dapat menemukan alasan lain untuk menggunakan database ini di dokumentasi SQLite . Artikel ini tentang penggunaan SQLite dalam pengembangan Python. Oleh karena itu, sangatlah penting bagi kami bahwa DBMS ini, yang diwakili oleh modul , disertakan dalam pustaka standar bahasa tersebut. Artinya, ternyata untuk bekerja dengan SQLite dari kode Python, Anda tidak perlu menginstal perangkat lunak server-klien, Anda tidak perlu mendukung pengoperasian beberapa layanan yang bertanggung jawab untuk bekerja dengan DBMS. Yang perlu Anda lakukan adalah mengimpor modul dan mulai menggunakannya dalam program, setelah menerima sistem manajemen basis data relasional yang Anda inginkan.
sqlite3sqlite3
Impor modul
Di atas, saya mengatakan bahwa SQLite adalah DBMS yang dibangun ke dalam Python. Ini berarti bahwa untuk mulai bekerja dengannya, cukup dengan mengimpor modul yang sesuai tanpa terlebih dahulu menginstalnya menggunakan perintah seperti
pip install. Perintah impor SQLite terlihat seperti ini:
import sqlite3 as sl
Membuat koneksi ke database
Untuk membuat koneksi ke database SQLite, Anda tidak perlu khawatir tentang menginstal driver, menyiapkan string koneksi, dan hal-hal semacam itu. Anda dapat membuat database dan mendapatkan objek koneksi yang Anda inginkan dengan sangat sederhana dan cepat:
con = sl.connect('my-test.db')
Dengan mengeksekusi baris kode ini, kita akan membuat database dan menghubungkannya. Intinya di sini adalah bahwa database yang kita hubungkan belum ada, sehingga sistem secara otomatis membuat database baru yang kosong. Jika database sudah dibuat (katakanlah ini
my-test.dbdari contoh sebelumnya), untuk menghubungkannya, Anda hanya perlu menggunakan kode yang persis sama.

File database yang baru dibuat
Membuat tabel
Sekarang mari buat tabel di database baru kita:
with con:
con.execute("""
CREATE TABLE USER (
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
name TEXT,
age INTEGER
);
""")
Ini menjelaskan cara menambahkan tabel
USERdengan tiga kolom ke database . Seperti yang Anda lihat, SQLite memang sistem manajemen basis data yang sangat sederhana, tetapi memiliki semua kemampuan dasar yang Anda harapkan dari sistem manajemen basis data relasional konvensional. Kita berbicara tentang dukungan untuk tipe data, termasuk - tipe yang memungkinkan nilai null, dukungan untuk kunci utama dan peningkatan otomatis.
Jika kode ini berfungsi seperti yang diharapkan (perintah di atas, bagaimanapun, tidak mengembalikan apa pun), kita akan memiliki tabel yang dapat kita gunakan, siap untuk bekerja lebih lanjut dengannya.
Memasukkan catatan ke dalam tabel
Mari masukkan beberapa record ke dalam tabel yang
USERbaru kita buat. Ini, antara lain, akan memberi kita bukti bahwa tabel tersebut memang dibuat dengan perintah di atas.
Mari kita bayangkan bahwa kita perlu menambahkan beberapa record ke tabel dengan satu perintah. Sangat mudah untuk melakukan ini di SQLite:
sql = 'INSERT INTO USER (id, name, age) values(?, ?, ?)'
data = [
(1, 'Alice', 21),
(2, 'Bob', 22),
(3, 'Chris', 23)
]
Di sini kita perlu mendefinisikan ekspresi SQL dengan tanda tanya (
?) sebagai placeholder. Mengingat bahwa kami memiliki objek koneksi database yang kami inginkan, kami, setelah menyiapkan ekspresi dan data, dapat memasukkan catatan ke dalam tabel:
with con:
con.executemany(sql, data)
Setelah menjalankan kode ini, tidak ada pesan error yang diterima yang berarti data telah berhasil ditambahkan ke tabel.
Menjalankan Query Database
Sekarang saatnya untuk mengetahui apakah perintah yang baru saja kita jalankan telah berfungsi dengan benar. Mari jalankan kueri ke database dan coba dapatkan
USERbeberapa data dari tabel . Misalnya - kami mendapatkan catatan terkait pengguna yang usianya tidak melebihi 22 tahun:
with con:
data = con.execute("SELECT * FROM USER WHERE age <= 22")
for row in data:
print(row)

Hasil dari mengeksekusi query ke database
Seperti yang Anda lihat, kami berhasil mendapatkan apa yang dibutuhkan. Dan itu sangat mudah dilakukan.
Selain itu, meskipun SQLite adalah DBMS sederhana, ia memiliki dukungan yang sangat luas. Oleh karena itu, Anda dapat mengerjakannya menggunakan sebagian besar klien SQL.
Saya menggunakan DBeaver. Mari kita lihat tampilannya.
Menghubungkan ke database SQLite dari klien SQL (DBeaver)
Saya menggunakan layanan cloud Google Colab dan ingin mendownload file
my-test.dbke komputer saya. Jika Anda bereksperimen dengan SQLite di komputer, itu berarti Anda, tanpa harus mengunduh file database dari suatu tempat, dapat menyambungkannya menggunakan klien SQL.
Dalam kasus DBeaver, untuk menghubungkan ke database SQLite, Anda perlu membuat koneksi baru dan memilih SQLite sebagai tipe database.

Mempersiapkan koneksi di DBeaver
Selanjutnya, Anda perlu mencari file database.

Menghubungkan file database
Kemudian Anda dapat menjalankan kueri SQL terhadap database. Tidak ada yang istimewa di sini, berbeda dengan bekerja dengan database relasional biasa.

Menjalankan Query Database
Integrasi dengan panda
Menurut Anda, apakah di sinilah kita mengakhiri percakapan tentang dukungan SQLite dengan Python? Tidak, masih banyak yang harus kita bicarakan. Yaitu, karena SQLite adalah modul Python standar, itu terintegrasi dengan mudah dengan bingkai data pandas.
Mari deklarasikan kerangka data:
df_skill = pd.DataFrame({
'user_id': [1,1,2,2,3,3,3],
'skill': ['Network Security', 'Algorithm Development', 'Network Security', 'Java', 'Python', 'Data Science', 'Machine Learning']
})

Pandas dataframe
Untuk menyimpan dataframe ke database, Anda cukup menggunakan metodenya
to_sql():
df_skill.to_sql('SKILL', con)
Itu saja! Kami bahkan tidak perlu membuat tabel terlebih dahulu. Jenis data dan karakteristik bidang akan dikonfigurasi secara otomatis berdasarkan karakteristik dataframe. Tentu saja, Anda dapat menyesuaikan semuanya sendiri jika diperlukan.
Sekarang misalkan kita perlu menggabungkan tabel
USERdan SKILL, dan menulis data dalam datafreym pandas. Ini juga sangat sederhana:
df = pd.read_sql('''
SELECT s.user_id, u.name, u.age, s.skill
FROM USER u LEFT JOIN SKILL s ON u.id = s.user_id
''', con)

Membaca data dari database menjadi pandas dataframe
Bagus! Sekarang mari kita tulis apa yang kita dapatkan ke tabel baru bernama
USER_SKILL:
df.to_sql('USER_SKILL', con)
Tentu saja, Anda dapat bekerja dengan tabel ini menggunakan klien SQL.

Menggunakan klien SQL untuk bekerja dengan database
Hasil
Tentu ada banyak kejutan menyenangkan dengan Python yang, kecuali jika Anda mencarinya secara khusus, Anda mungkin tidak menyadarinya. Tidak ada yang menyembunyikan fitur seperti itu secara khusus, tetapi karena banyak hal yang dibangun ke dalam Python, Anda tidak dapat memperhatikan beberapa fitur ini, atau, setelah mempelajarinya dari suatu tempat, lupakan saja.
Di sini saya berbicara tentang cara menggunakan pustaka Python bawaan
sqlite3untuk membuat dan bekerja dengan basis data. Tentu saja, basis data seperti itu tidak hanya mendukung operasi penambahan data, tetapi juga operasi mengubah dan menghapus informasi. Saya percaya Anda, setelah mempelajarinya sqlite3, akan mengalami semuanya sendiri.
Yang paling penting adalah SQLite sangat bagus untuk panda. Sangat mudah untuk membaca data dari database dengan menempatkannya di dataframe. Operasi menyimpan konten dataframe ke database tidak kalah sederhana. Ini membuat SQLite lebih mudah digunakan.
Saya mengundang semua orang yang telah membaca sejauh ini untuk melakukan penelitian mereka sendiri untuk mencari fitur Python yang menarik!
Kode yang saya tunjukkan dalam artikel ini dapat ditemukan di sini .
Apakah Anda menggunakan SQLite dalam proyek Python Anda?
