Database adalah salah satu file yang paling berguna dan populer untuk menyimpan data; mereka dapat digunakan untuk menyimpan segala jenis data, termasuk teks, angka, gambar, data biner, file, dll. SQLite adalah sistem manajemen basis data relasional berdasarkan bahasa SQL. Ini adalah pustaka C, dan menyediakan API untuk bekerja dengan bahasa pemrograman lain, termasuk Python. Itu tidak memerlukan proses server terpisah untuk dijalankan sesuai kebutuhan di mesin database besar seperti MySQL dan Postgresql.
Ini cepat dan ringan, dan seluruh database disimpan dalam satu file disk, yang membuatnya portabel seperti CSV atau file penyimpanan data lainnya. Banyak aplikasi menggunakan SQLite untuk penyimpanan data internal, terutama di lingkungan seperti perangkat seluler atau aplikasi kecil.
Basis Data SQLite untuk Python
Mari selami SQLite dengan bahasa pemrograman python. Dalam tutorial ini, kita akan mempelajari keuntungan menggunakan SQLite, dasar-dasar modul python sqlite3, Membuat tabel dalam database, Menyisipkan data ke dalam tabel, Query data dari tabel, dan Update data tabel.
Keuntungan menggunakan SQLite
Keuntungan utama menggunakan SQLite adalah:
- SQLite tidak memerlukan proses atau sistem server terpisah untuk mengoperasikan sebanyak yang dibutuhkan mesin database besar.
- SQLite hadir dengan konfigurasi nol, yang berarti tidak diperlukan pengaturan atau administrasi, yang membuatnya mudah digunakan.
- Kami akan mendapatkan file database tunggal, dan semua informasi disimpan di bawah file satu-satunya, yang membuat file portabel, tidak seperti database lain yang mengeluarkan beberapa file.
- Itu sudah diinstal sebelumnya dengan Pustaka Standar Python sehingga Anda dapat menggunakannya tanpa instalasi lebih lanjut.
- SQLite ditulis dalam ANSI-C, yang membuatnya lebih cepat. Ini juga menyediakan API yang sederhana dan mudah digunakan dengan Python dan banyak bahasa pemrograman lainnya.
- SQLite tersedia di UNIX (Linux, Mac OS-X, Android, iOS) dan Windows (Win32, WinCE, WinRT), jadi tidak masalah lingkungan mana yang kita gunakan.
SQLite juga digunakan di Google Chrome untuk menyimpan cookie, data Pengguna, dan data penting lainnya, termasuk kata sandi pengguna. OS Android juga menggunakan SQLite sebagai mesin basis data utamanya untuk menyimpan data.
Modul Python SQLite3
Untuk menggunakan SQLite, kami membutuhkan Python untuk diinstal di sistem kami. Jika Anda belum menginstal Python di sistem Anda, Anda dapat merujuk ke panduan langkah demi langkah kami untuk menginstal Python di Linux. Kita bisa menggunakan SQLite dengan Python menggunakan sqlite3 modul tersedia di pustaka standar Python. Gerhard Häring menulis modul sqlite3; ini menyediakan antarmuka SQL yang sesuai dengan DB-API 2.0. Itu sudah diinstal sebelumnya dengan pustaka standar Python, jadi kita tidak perlu khawatir tentang instalasi lebih lanjut.
Membuat Koneksi ke Database
Langkah pertama saat bekerja dengan SQLite di Python adalah menyiapkan koneksi dengan database. Kita dapat melakukan ini dengan menggunakan metode connect() dari sqlite3 untuk mengatur koneksi. Lihatlah kode berikut untuk contoh. Anda cukup menyalin kode ke IDE atau Editor Teks dan menjalankannya. Jika Anda memiliki masalah dalam memilih IDE untuk Python, Anda dapat merujuk ke panduan kami untuk membandingkan IDE python terbaik. Disarankan untuk menulis ulang kode lagi di IDE Anda, dan jika Anda ingin menyalin kode, silakan periksa sintaks dengan kode yang ada di sini.
# mengimpor modul yang diperlukan impor sqlite3 # mengatur koneksi dengan database conn = sqlite3.hubungkan("contoh.db") print("Berhasil terhubung ke database") # menutup koneksi koneksi.Menutup()
Program di atas akan membuat koneksi dengan file database SQLite "sampel".db.” Ini akan memberikan output berikut di terminal.
Mari kita lihat apa yang terjadi pada kode di atas. Pada baris pertama, kita telah mengimpor modul sqlite3, yang akan membantu kita bekerja dengan database SQLite dengan Python.
Di baris kedua, kita membuat koneksi dengan file database SQLite bernama "sample".db” menggunakan Menghubung() fungsi. Fungsi connect() menerima jalur ke file database sebagai argumen. Jika file tidak ada di jalur yang diberikan, maka itu sendiri akan membuat file database baru dengan nama yang diberikan di jalur itu. Fungsi connect() akan mengembalikan objek database dalam program kita; kami menyimpan objek yang dikembalikan ke dalam variabel bernama samb.
Baris ketiga dalam program kami sederhana mencetak pernyataan untuk menampilkan pesan tentang koneksi yang berhasil. Baris terakhir dari program memutuskan koneksi dengan database menggunakan using Menutup() fungsi objek koneksi connection.
Pada contoh sebelumnya, kami telah membuat database ke dalam disk, tetapi kami juga dapat membuat database ke dalam memori utama RAM. Membuat database di RAM membuat eksekusi database lebih cepat dari biasanya. Namun, database akan dibuat sementara, dan saat eksekusi program berhenti, database akan dihapus dari memori. Kita dapat membuat database di memori dengan memberikan nama tertentu :memory: sebagai argumen untuk to Menghubung() fungsi. Lihat program di bawah ini sebagai ilustrasi.
impor sqlite3 samb = sqlite3.connect(":memory:") print("\n [+] Database telah berhasil dibuat di Memory") conn.Menutup()
Program di atas akan membuat database di RAM, dan kita bisa menggunakannya untuk melakukan hampir semua tugas yang bisa kita lakukan dengan database yang dibuat di disk. Metode ini berguna saat membuat database virtual sementara untuk beberapa alasan.
kursor SQLite3
SEBUAHkursor
objeknya adalah antarmuka kami ke database, yang memungkinkan menjalankan apa punkueri SQL
di database. Untuk menjalankan skrip SQL apa pun menggunakan sqlite3, kita harus membuat objek kursor. Untuk membuat objek kursor, kita perlu menggunakan kursor() metode koneksi obyek. Kita dapat membuat objek kursor dari database kita menggunakan kode berikut:.
# mengimpor modul yang diperlukan impor sqlite3 # mengatur koneksi ke database conn = sqlite3.hubungkan("contoh.db") print("\n [+] Berhasil terhubung ke database") cur = conn.kursor() print("\n [+] Kursor telah berhasil diatur") cur.close() # menutup koneksi koneksi.Menutup()
Ketika program dijalankan, output akan terlihat seperti yang ditunjukkan pada gambar di bawah ini.
Mari kita lihat bagaimana kode di atas bekerja. Pada kode di atas, yang pertama, kedua, ketiga, adalah menyiapkan koneksi dengan database, seperti yang ditunjukkan sebelumnya. Di baris keempat, kami telah menggunakan kursor() metode objek koneksi untuk membuat objek kursor dan menyimpan objek kursor yang dikembalikan dalam variabel bernama "cur". Baris kelima adalah jenderal mencetak() pernyataan. Di baris keenam, kami menghancurkan objek kursor dari memori dengan menggunakan Menutup() metode objek kursor.
Tipe Data SQLite
Sebelum melangkah lebih jauh, mari kita pahami dulu tipe data SQLite. Mesin database SQLite memiliki beberapa kelas penyimpanan untuk menyimpan banyak jenis data, termasuk teks, data biner, Integer, dll. Setiap nilai memiliki salah satu dari tipe data berikut:.
Tipe Data SQLite:
- NULL: Seperti yang tersirat, itu tidak mengandung apa pun.
- INTEGER: Ini menyimpan nilai numerik seperti angka dan bilangan bulat lainnya.
- NYATA: Nilainya termasuk desimal
- TEKS: Ini adalah string teks.
- BLOB: Ini adalah data biner dan digunakan untuk menyimpan gambar dan file.
Perbandingan Tipe Data SQLite dan Python
Akan ada banyak waktu ketika kita perlu menggunakan tipe data python untuk menyimpan beberapa data SQL dan melakukan beberapa aktivitas. Untuk melakukan hal seperti itu, kita perlu mengetahui tipe data SQL mana yang berhubungan dengan tipe data python.
Tipe Python berikut ini agak mirip dengan tipe data SQLite:
jenis ular piton | tipe SQLite |
---|---|
Tidak ada | BATAL |
ke dalam | BILANGAN BULAT |
mengapung | NYATA |
str | TEKS |
byte | GUMPAL |
Membuat Tabel menggunakan SQLite
Untuk membuat tabel menggunakan SQLite, kita perlu menggunakan BUAT TABEL pernyataan SQL dalam menjalankan() metode objek kursor. Sintaks dasar dari pernyataan CREATE TABLE dalam SQL ditunjukkan di bawah ini:
CREATE TABLE table_name( column_name Data_type constraint,… column_name Data_type constraint );
Untuk menggunakan pernyataan SQLite di atas dengan Python, kita perlu menjalankan program contoh di bawah ini:. Ini akan membuat tabel bernama karyawan di database kami.
impor sqlite3 samb = sqlite3.hubungkan("contoh.db") print("\n [+] Berhasil terhubung ke database") cur = conn.kursor() print("\n [+] Kursor telah berhasil diatur") table = cur.execute(""" CREATE TABLE employee( id INT PRIMARY KEY, nama CHAR(25), salary CHAR(25), join_date DATE ); """) print("\n [+] Tabel telah berhasil dibuat ") bajingan.tutup() sambung.Menutup()
Dalam program di atas, kami membuat karyawan tabel dengan atribut Indo, nama, gaji, dan tanggal Bergabung. Tabel ini sekarang dapat digunakan untuk menyimpan data atau meminta data sesuai kebutuhan. Anda akan melihat output berikut di terminal.
Dalam kode di atas, kami telah menggunakan menjalankan() metode objek kursor untuk menjalankan perintah SQL untuk membuat tabel dengan kolom yang diberikan.
Memasukkan Data ke dalam Tabel
Kami telah membuat tabel di database SQLite kami. Sekarang mari kita masukkan beberapa data di dalamnya menggunakan SQL. Sintaks dasar dari pernyataan INSERT SQL adalah:
MASUKKAN KE nama_tabel (nama_kolom_1, nama_kolom_2,… ) NILAI (kolom_data_1, kolom_data_1,… )
Dalam sintaks di atas, nama_tabel adalah nama tabel di mana kita ingin memasukkan data kita. Itu kolom_nama_1, kolom_nama_2,… adalah nama kolom yang ada di tabel. Itu kolom_data_1, kolom_data_2,… adalah data yang ingin kita sisipkan di kolom yang diberikan.
Mari kita lihat demo praktis untuk memasukkan data ke dalam tabel. Kami akan menambahkan beberapa data ke dalam tabel kami bernama karyawan menggunakan SQLite dan Python. Jalankan kode di bawah ini untuk memasukkan beberapa data ke dalam tabel.
impor sqlite3 samb = sqlite3.hubungkan("contoh.db") print("\n [+] Berhasil terhubung ke database") cur = conn.kursor() print("\n [+] Kursor telah berhasil diatur") cur.execute("INSERT INTO employee (id, name, salary, join_date) VALUES (1001, 'David', 50000, '1-08-2019')") cur.execute("INSERT INTO employee (id, name, salary, join_date) VALUES (1002, 'Sam', 80000, '3-09-2020')") cur.execute("INSERT INTO employee (id, name, salary, join_date) VALUES (1003, 'Roshan', 90000, '08-08-2020')") cur.execute("INSERT INTO employee (id, name, salary, join_date) VALUES (1004, 'Kishan', 100000, '9-09-2020')") cur.execute("INSERT INTO employee (id, name, salary, join_date) VALUES (1005, 'Ankit', 111000, '10-05-2019')") print("\n [+] Data telah berhasil dimasukkan " ) skr.tutup() sambung.komit() samb.Menutup()
Kode di atas akan memasukkan beberapa data ke dalam karyawan tabel yang telah kita buat sebelumnya. Mari kita lihat apa yang terjadi dalam kode. Lima baris pertama digunakan untuk membuat koneksi dengan database dan mengatur kursor. Di baris dari enam hingga sepuluh, kita harus menggunakan perintah INSERT dari SQL untuk memasukkan data ke tabel karyawan employee. Kita harus menggunakan nama kolom tabel karyawan di kurung pertama dan data untuk kolom di kurung kedua. Kita hanya perlu menggunakan melakukan() metode objek koneksi sebelum memutuskan sambungan dengan database jika tidak, perubahan yang kami buat tidak akan disimpan ke dalam database.
Meminta Data dari Tabel
Kita telah mempelajari cara memasukkan data ke dalam database SQLite, tetapi kita juga perlu melakukan kueri data dari database untuk digunakan oleh program atau pengguna kita. Untuk mengkueri data, kita dapat menggunakan pernyataan SELECT dari SQL di bawah metode execute(). Sintaks dasar dari pernyataan SELECT ditunjukkan di bawah ini:.
PILIH kolom_nama DARI nama_tabel
Itu kolom_nama dalam sintaks akan menjadi nama kolom yang perlu kita kueri. Kolom-kolom ini harus ada dalam tabel yang namanya diberikan sebagai pengganti nama_tabel. Sekarang mari kita lihat bagaimana kita bisa menggunakan sintaks ini untuk meminta data dari tabel karyawan kita. Jalankan saja kode berikut untuk melihat ilustrasinya.
impor sqlite3 samb = sqlite3.hubungkan("contoh.db") print("\n [+] Berhasil terhubung ke database") cur = conn.kursor() print("\n [+] Kursor telah berhasil diatur") cur.execute("SELECT id,name FROM employee") table = cur.fetchall() untuk i dalam tabel: print(i) cur.tutup() sambung.komit() samb.Menutup()
Output yang disediakan oleh program di atas ditunjukkan di bawah ini:.
Program di atas akan menanyakan tabel karyawan untuk kolom Indo dan nama. Kami dapat mengumpulkan data yang telah dikembalikan dengan menggunakan ambil semua() metode objek kursor. Data yang dikembalikan adalah daftar python yang berisi baris yang kami tanyakan. Untuk menampilkan baris individual, kita harus menggunakan Python for loop untuk mengulangi daftar; Anda dapat membaca lebih lanjut tentang Python for loop di sini. Sekarang mari kita lihat beberapa hal berguna yang dapat kita lakukan dengan pernyataan SELECT.
Ambil semua Data dari tabel
Terkadang ada kebutuhan untuk mengambil semua catatan dari tabel database. Untuk mendapatkan semua catatan menggunakan pernyataan SELECT dari SQL, kita perlu mengikuti sintaks dasar yang diberikan di bawah ini:
PILIH * DARI nama_tabel
Itu * simbol akan digunakan untuk menunjukkan semua kolom, dan dengan menggunakan ini, kita dapat menanyakan semua kolom dari tabel SQLite. Untuk mengambil semua record dari table employee yang telah kita buat sebelumnya, kita perlu menjalankan kode berikut:.
impor sqlite3 samb = sqlite3.hubungkan("contoh.db") print("\n [+] Berhasil terhubung ke database") cur = conn.kursor() print("\n [+] Kursor telah berhasil diatur") cur.execute("SELECT * FROM employee") rows = cur.fetchall() print("\n [+] Meminta data \n") untuk i dalam baris: print(i) cur.tutup() sambung.komit() samb.Menutup()
Kode di atas akan menampilkan semua record yang ada di tabel karyawan yang telah kita buat sebelumnya. Output dari program akan menjadi seperti ini:
Data kueri dalam urutan tertentu
Terkadang kita perlu meminta data dari tabel dalam urutan tertentu seperti Ascending atau Descending. Kita dapat menggunakan pernyataan SELECT dengan kata kunci ORDER BY untuk menampilkan data secara berurutan. Sintaks dasar dari kata kunci ORDER BY dalam pernyataan SELECT adalah:
PILIH column_name FROM table_name ORDER BY column_name
Mari kita lihat bagaimana kita dapat menggunakan kata kunci ORDER BY untuk menampilkan data dari tabel karyawan urutan dengan nama.
impor sqlite3 samb = sqlite3.hubungkan("contoh.db") print("\n [+] Berhasil terhubung ke database") cur = conn.kursor() print("\n [+] Kursor telah berhasil diatur") cur.execute("SELECT * FROM employee ORDER BY name") table = cur.fetchall() untuk i dalam tabel: print(i) cur.tutup() sambung.komit() samb.Menutup()
Anda mungkin melihat output dari kode di atas, seperti yang ditunjukkan di bawah ini.
Anda mungkin memperhatikan di output bahwa data telah ditampilkan dalam urutan kolom yang menaik nama.
Memperbarui catatan dalam Tabel
Ada banyak situasi ketika kami ingin memperbarui tabel database kami. Misalnya, jika kita menggunakan database untuk aplikasi sekolah, maka kita perlu memperbarui data jika siswa dipindahkan ke kota baru. Kami dapat dengan cepat memperbarui baris tabel apa pun dari basis data kami menggunakan MEMPERBARUI pernyataan SQL dalam metode execute(). Kita perlu menggunakan klausa WHERE dari SQL sebagai syarat untuk memilih karyawan. Sintaks dasar dari MEMPERBARUI pernyataan ditunjukkan di bawah ini.
UPDATE table_name SET update_required WHERE Some_condition
Lihat contoh di bawah ini sebagai ilustrasi pernyataan UPDATE.
impor sqlite3 samb = sqlite3.hubungkan("contoh.db") print("\n [+] Berhasil terhubung ke database") cur = conn.kursor() print("\n [+] Kursor telah berhasil diatur") print("\n [+] Data Sebelum Pembaruan\n") cur.execute("SELECT * FROM employee") before = cur.fetchall() untuk i in before: print(i) cur.execute("UPDATE employee SET name = 'Aditya' where name = 'Sam'") print("\n [+] Data Setelah Update\n") cur.execute("SELECT * FROM employee") after = cur.fetchall() untuk i in after: print(i) cur.tutup() sambung.komit() samb.Menutup()
Program di atas akan memperbarui tabel karyawan. Itu menggantikan nama sama dengan nama Aditya di mana pun itu muncul di tabel. Lihat gambar di bawah ini untuk output dari program.
Kesimpulan
Itulah panduan komprehensif kami untuk melakukan beberapa tugas dasar terkait database SQLite menggunakan Python. Dalam tutorial yang akan datang, kita akan melihat beberapa penggunaan lanjutan yang akan membawa Anda ke tingkat berikutnya dalam mempelajari database SQLite untuk Python. Pantau terus FOSSlinux.