Pengaturcaraan

Asas Bekerja dengan Pangkalan Data SQLite di Python

Asas Bekerja dengan Pangkalan Data SQLite di Python

Pangkalan data adalah salah satu fail yang paling berguna dan popular untuk menyimpan data; mereka boleh digunakan untuk menyimpan segala jenis data, termasuk teks, angka, gambar, data binari, fail, dll. SQLite adalah sistem pengurusan pangkalan data relasional berdasarkan bahasa SQL. Ini adalah perpustakaan C, dan menyediakan API untuk bekerja dengan bahasa pengaturcaraan lain, termasuk Python. Ia tidak memerlukan proses pelayan yang terpisah untuk dijalankan seperti yang diperlukan dalam mesin pangkalan data besar seperti MySQL dan Postgresql.

Ini cepat dan ringan, dan seluruh pangkalan data disimpan dalam satu fail cakera, yang menjadikannya mudah alih seperti CSV atau fail penyimpanan data lain. Banyak aplikasi menggunakan SQLite untuk penyimpanan data dalaman, terutama di persekitaran seperti peranti mudah alih atau aplikasi kecil.

Pangkalan Data SQLite untuk Python

Mari selami SQLite dengan bahasa pengaturcaraan python. Dalam tutorial ini, kita akan mempelajari kelebihan menggunakan SQLite, asas-asas modul python sqlite3, Membuat tabel dalam pangkalan data, Memasukkan data ke dalam jadual, Meminta data dari jadual, dan Mengemas kini data jadual.

Kelebihan menggunakan SQLite

Kelebihan utama menggunakan SQLite adalah:

SQLite juga digunakan di Google Chrome untuk menyimpan kuki, data Pengguna, dan data penting lainnya, termasuk kata laluan pengguna. OS Android juga menggunakan SQLite sebagai mesin pangkalan data utamanya untuk menyimpan data.

Modul Python SQLite3

Untuk menggunakan SQLite, kami memerlukan Python dipasang di sistem kami. Sekiranya anda belum memasang Python dalam sistem anda, anda boleh merujuk kepada panduan langkah demi langkah kami untuk memasang Python di Linux. Kita dapat menggunakan SQLite di Python menggunakan sqlite3 modul terdapat di perpustakaan standard Python. Gerhard Häring menulis modul sqlite3; ia menyediakan antara muka SQL yang sesuai dengan DB-API 2.0. Ia dipasang dengan pustaka standard Python, jadi kami tidak perlu risau tentang pemasangan selanjutnya.

Membuat Sambungan ke Pangkalan Data

Langkah pertama ketika bekerja dengan SQLite di Python adalah membuat sambungan dengan pangkalan data. Kita boleh melakukan ini dengan menggunakan kaedah connect () sqlite3 untuk membuat sambungan. Lihat kod berikut sebagai contoh. Anda hanya boleh menyalin kod tersebut ke IDE atau Text Editor dan melaksanakannya. Sekiranya anda menghadapi masalah memilih IDE untuk Python, anda boleh merujuk panduan kami untuk membandingkan IDE python terbaik. Dianjurkan untuk menulis semula kod tersebut di IDE anda, dan jika anda ingin menyalin kodnya, sila periksa sintaks dengan kod yang ada di sini.

# mengimport modul yang diperlukan import sqlite3 # mengatur sambungan dengan pangkalan data conn = sqlite3.sambungkan ("sampel.db ") cetak (" Berhasil disambungkan ke pangkalan data ") # menutup sambungan sambungan.tutup ()

Program di atas akan membuat sambungan dengan "pangkalan data SQLite" contoh.db."Ini akan memberikan output berikut di terminal.

Mari lihat apa yang berlaku dalam kod di atas. Pada baris pertama, kami telah mengimport modul sqlite3, yang akan membantu kami bekerja dengan pangkalan data SQLite di Python.

Pada baris kedua, kami membuat sambungan dengan fail pangkalan data SQLite bernama "sample.db ”menggunakan sambung () fungsi. Fungsi connect () menerima jalan ke fail pangkalan data sebagai argumen. Sekiranya fail tersebut tidak ada di jalan yang diberikan, maka fail itu sendiri akan membuat fail pangkalan data baru dengan nama yang diberikan di jalan tersebut. Fungsi connect () akan mengembalikan objek pangkalan data dalam program kami; kami menyimpan objek yang dikembalikan ke dalam pemboleh ubah bernama samb.

Baris ketiga dalam program kami adalah ringkas mencetak pernyataan untuk memaparkan mesej mengenai sambungan yang berjaya. Baris terakhir program memutuskan hubungan dengan pangkalan data menggunakan tutup () fungsi objek sambungan.

Dalam contoh sebelumnya, kami telah membuat pangkalan data ke dalam cakera, tetapi kami juga dapat membuat pangkalan data ke dalam RAM memori utama. Membuat pangkalan data dalam RAM menjadikan pelaksanaan pangkalan data lebih cepat daripada biasa. Namun, pangkalan data akan dibuat buat sementara, dan ketika pelaksanaan program berhenti, ia akan menghapus pangkalan data dari memori. Kita dapat membuat pangkalan data dalam memori dengan memberikan nama tertentu: memori: sebagai argumen kepada sambung () fungsi. Lihat program di bawah sebagai gambaran.

import sqlite3 conn = sqlite3.connect (": memory:") print ("\ n [+] Pangkalan data berjaya dibuat dalam Memory").tutup ()

Program di atas akan membuat pangkalan data dalam RAM, dan kita dapat menggunakannya untuk melakukan hampir semua tugas yang dapat kita lakukan dengan pangkalan data yang dibuat di dalam disk. Kaedah ini berguna semasa membuat pangkalan data maya sementara untuk beberapa sebab.

Kursor SQLite3

Akursor objeknya adalah antara muka kita ke pangkalan data, yang membolehkan menjalankan apa-apaPertanyaan SQL di pangkalan data. Untuk melaksanakan skrip SQL menggunakan sqlite3, kita mesti membuat objek kursor. Untuk membuat objek kursor, kita perlu menggunakan kursor () kaedah sambungan objek. Kita boleh membuat objek kursor pangkalan data kita menggunakan kod berikut.

# mengimport modul yang diperlukan import sqlite3 # mengatur sambungan ke pangkalan data conn = sqlite3.sambungkan ("sampel.db ") cetak (" \ n [+] Berhasil disambungkan ke pangkalan data ") cur = conn.kursor () cetak ("\ n [+] Kursor berjaya disiapkan") cur.tutup () # tutup sambungan sambungan.tutup ()

Ketika program dijalankan, output akan dilihat seperti yang ditunjukkan pada gambar di bawah.

Mari lihat bagaimana kod di atas berfungsi. Dalam kod di atas, yang pertama, kedua, ketiga, membuat sambungan dengan pangkalan data, seperti yang ditunjukkan sebelumnya. Pada baris keempat, kami telah menggunakan kursor () kaedah objek sambungan untuk membuat objek kursor dan menyimpan objek kursor yang dikembalikan dalam pemboleh ubah bernama "cur". Baris kelima adalah umum cetak () penyataan. Pada baris keenam, kita menghancurkan objek kursor dari memori dengan menggunakan tutup () kaedah objek kursor.

Jenis Data SQLite

Sebelum melangkah lebih jauh, mari kita terlebih dahulu memahami jenis data SQLite. Enjin pangkalan data SQLite mempunyai beberapa kelas penyimpanan untuk menyimpan banyak jenis data, termasuk teks, data binari, Integer, dll. Setiap nilai mempunyai salah satu jenis data berikut.

Jenis Data SQLite:

Perbandingan Jenis Data SQLite dan Python

Akan banyak kali kita perlu menggunakan jenis data python untuk menyimpan beberapa data SQL dan melakukan beberapa aktiviti. Untuk perkara seperti ini, kita perlu mengetahui jenis data SQL mana yang berkaitan dengan jenis data python.

Jenis Python berikut agak serupa dengan jenis data SQLite:

Jenis ular sawa Jenis SQLite
Tiada BULAN
int INTEGER
terapung BENAR
str TEKS
bait BLOB

Membuat Jadual menggunakan SQLite

Untuk membuat jadual menggunakan SQLite, kita perlu menggunakan BUAT JADUAL penyataan SQL di laksanakan () kaedah objek kursor. Sintaks asas penyataan CREATE TABLE dalam SQL ditunjukkan di bawah:

BUAT TABLE table_name (kolum_nama Data_tipe kekangan, ... kolom_nama Data_type batasan);

Untuk menggunakan pernyataan SQLite di atas di Python, kita perlu menjalankan program contoh di bawah. Ia akan membuat jadual bernama pekerja di pangkalan data kami.

import sqlite3 conn = sqlite3.sambungkan ("sampel.db ") cetak (" \ n [+] Berhasil disambungkan ke pangkalan data ") cur = conn.kursor () cetak ("\ n [+] Kursor berjaya disiapkan") table = cur.laksanakan ("" "BUAT pekerja TABLE (id INT PRIMARY KEY, name CHAR (25), gaji CHAR (25), join_date DATE);" "") print ("\ n [+] Jadual telah berjaya dibuat") cur.tutup () samb.tutup ()

Dalam program di atas, kami membuat pekerja jadual dengan atribut ID, nama, gaji, dan join_date. Jadual ini sekarang dapat digunakan untuk menyimpan data atau meminta data sesuai keperluan. Anda akan melihat output berikut di terminal.

Dalam kod di atas, kami telah menggunakan laksanakan () kaedah objek kursor untuk menjalankan perintah SQL untuk membuat jadual dengan lajur yang diberikan.

Memasukkan Data dalam Jadual

Kami telah membuat jadual dalam pangkalan data SQLite kami. Sekarang mari kita masukkan beberapa data di dalamnya menggunakan SQL. Sintaks asas penyataan INSERT SQL adalah:

INSERT INTO table_name (kolum_nama_1, lajur_nama_2,…) NILAI (lajur_data_1, lajur_data_1,…)

Dalam sintaks di atas, nama_nama meja adalah nama jadual di mana kita mahu memasukkan data kita. The lajur_nama_1, lajur_nama_2, adalah nama lajur yang terdapat dalam jadual. The lajur_data_1, lajur_data_2,… adalah data yang ingin kita masukkan dalam lajur yang diberikan.

Mari kita lihat demo praktikal untuk memasukkan data ke dalam jadual. Kami akan menambahkan beberapa data ke dalam jadual kami yang dinamakan pekerja menggunakan SQLite dan Python. Jalankan kod di bawah untuk memasukkan beberapa data ke dalam jadual.

import sqlite3 conn = sqlite3.sambungkan ("sampel.db ") cetak (" \ n [+] Berhasil disambungkan ke pangkalan data ") cur = conn.kursor () cetak ("\ n [+] Kursor berjaya disiapkan") cur.laksanakan ("MASUKKAN INTO pekerja (id, nama, gaji, tarikh_tangguh) NILAI (1001, 'David', 50000, '1-08-2019')") cur.laksanakan ("MASUKKAN INTO pekerja (id, nama, gaji, tarikh_tangguh) NILAI (1002, 'Sam', 80000, '3-09-2020')") cur.laksanakan ("MASUKKAN INTO pekerja (id, nama, gaji, tarikh_tangguh) NILAI (1003, 'Roshan', 90000, '8-08-2020')") cur.laksanakan ("MASUKKAN INTO pekerja (id, nama, gaji, tarikh_tangguh) NILAI (1004, 'Kishan', 100000, '9-09-2020')") cur.laksanakan ("MASUKKAN INTO pekerja (id, nama, gaji, tarikh_tangguh) NILAI (1005, 'Ankit', 111000, '10 -05-2019 ')") cetak ("\ n [+] Data telah berjaya dimasukkan" ) cur.tutup () samb.komit () samb.tutup ()

Kod di atas akan memasukkan beberapa data ke dalam pekerja jadual yang telah kita buat sebelumnya. Mari lihat apa yang berlaku dalam kod tersebut. Lima baris pertama digunakan untuk membuat sambungan dengan pangkalan data dan mengatur kursor. Dalam garis dari enam hingga sepuluh, kita harus menggunakan perintah INSERT SQL untuk memasukkan data ke dalam jadual pekerja. Kita mesti menggunakan nama lajur jadual pekerja dalam kurungan pertama dan data untuk lajur dalam kurungan kedua. Kita hanya perlu menggunakan melakukan () kaedah objek sambungan sebelum memutuskan hubungan dengan pangkalan data, perubahan yang kita buat tidak akan disimpan ke dalam pangkalan data.

Meminta Data dari Jadual

Kami telah belajar memasukkan data ke dalam pangkalan data SQLite, tetapi kami juga harus meminta data dari pangkalan data untuk digunakan oleh program atau pengguna kami. Untuk pertanyaan data, kita dapat menggunakan pernyataan SELECT SQL di bawah kaedah eksekusi (). Sintaks asas pernyataan SELECT ditunjukkan di bawah.

PILIH lajur_nama DARI nama_nama meja

The lajur_nama dalam sintaks akan menjadi nama lajur yang perlu kita tanyakan. Lajur ini mesti ada dalam jadual yang namanya diberikan sebagai ganti nama_nama meja. Sekarang mari kita lihat bagaimana kita dapat menggunakan sintaks ini untuk meminta data dari jadual pekerja kita. Jalankan kod berikut untuk melihat ilustrasi.

import sqlite3 conn = sqlite3.sambungkan ("sampel.db ") cetak (" \ n [+] Berhasil disambungkan ke pangkalan data ") cur = conn.kursor () cetak ("\ n [+] Kursor berjaya disiapkan") cur.laksanakan ("PILIH id, nama DARI pekerja") table = cur.fetchall () untuk i dalam jadual: cetak (i) cur.tutup () samb.komit () samb.tutup ()

Output yang disediakan oleh program di atas ditunjukkan di bawah.

Program di atas akan menanyakan jadual pekerja untuk lajur ID dan nama. Kami dapat mengumpulkan data yang telah dikembalikan dengan menggunakan fetchall () kaedah objek kursor. Data yang dikembalikan adalah senarai python yang mengandungi baris yang kami tanyakan. Untuk memaparkan baris individu, kita harus menggunakan Python untuk gelung untuk berulang pada senarai; anda boleh membaca lebih lanjut mengenai Python for loop di sini. Sekarang mari kita lihat beberapa perkara berguna yang dapat kita lakukan dengan pernyataan SELECT.

Ambil semua Data membentuk jadual

Kadang-kadang ada keperluan untuk mengambil semua rekod dari jadual pangkalan data. Untuk mendapatkan semua rekod menggunakan pernyataan SELECT SQL, kita perlu mengikuti sintaks asas yang diberikan di bawah:

PILIH * DARI nama_ jadual

The * simbol akan digunakan untuk menunjukkan semua lajur, dan dengan menggunakan ini, kita dapat meminta semua lajur dari tabel SQLite. Untuk mengambil semua rekod dari pekerja jadual yang telah kita buat sebelumnya, kita perlu menjalankan kod berikut.

import sqlite3 conn = sqlite3.sambungkan ("sampel.db ") cetak (" \ n [+] Berhasil disambungkan ke pangkalan data ") cur = conn.kursor () cetak ("\ n [+] Kursor berjaya disiapkan") cur.laksanakan ("PILIH * DARI pekerja") baris = cur.fetchall () print ("\ n [+] Menanyakan data \ n") untuk i dalam baris: print (i) cur.tutup () samb.komit () samb.tutup ()

Kod di atas akan memaparkan semua rekod yang terdapat dalam jadual pekerja yang telah kita buat sebelumnya. Keluaran program akan seperti ini:

Data pertanyaan dalam urutan Spesifik

Kadang-kadang kita perlu meminta data dari jadual dalam urutan yang pasti seperti Menaik atau Menurun. Kita boleh menggunakan pernyataan SELECT dengan kata kunci ORDER BY untuk memaparkan data mengikut urutan. Sintaks asas kata kunci ORDER BY dalam pernyataan SELECT adalah:

PILIH lajur_nama DARI jadual_nama ORDER MENGIKUT lajur_nama

Mari kita lihat bagaimana kita boleh menggunakan kata kunci ORDER BY untuk memaparkan data dari susunan jadual pekerja dengan nama.

import sqlite3 conn = sqlite3.sambungkan ("sampel.db ") cetak (" \ n [+] Berhasil disambungkan ke pangkalan data ") cur = conn.kursor () cetak ("\ n [+] Kursor berjaya disiapkan") cur.laksanakan ("PILIH * DARI PESANAN OLEH pekerja dengan nama") table = cur.fetchall () untuk i dalam jadual: cetak (i) cur.tutup () samb.komit () samb.tutup ()

Anda mungkin melihat keluaran kod di atas, seperti yang ditunjukkan di bawah.

Anda mungkin melihat dalam output bahawa data telah ditunjukkan dalam urutan menaik lajur nama.

Mengemas kini rekod dalam Jadual

Terdapat banyak situasi ketika kita ingin mengemas kini jadual pangkalan data kita. Sebagai contoh, jika kita menggunakan pangkalan data untuk aplikasi sekolah, maka kita perlu mengemas kini data jika pelajar dipindahkan ke bandar baru. Kami dapat dengan cepat mengemas kini deretan jadual pangkalan data kami dengan menggunakan KEMASKINI penyataan SQL dalam kaedah eksekusi (). Kita perlu menggunakan klausa WHERE SQL sebagai syarat untuk memilih pekerja. Sintaks asas bagi KEMASKINI pernyataan ditunjukkan di bawah.

UPDATE table_name SET kemas kini_diperlukan DI MANA Sebilangan_kondisi

Lihat contoh di bawah sebagai gambaran penyataan UPDATE.

import sqlite3 conn = sqlite3.sambungkan ("sampel.db ") cetak (" \ n [+] Berhasil disambungkan ke pangkalan data ") cur = conn.kursor () cetak ("\ n [+] Kursor berjaya disiapkan") mencetak ("\ n [+] Data Sebelum Kemas kini \ n") cur.laksanakan ("PILIH * DARI pekerja") sebelum = cur.fetchall () untuk i in sebelumnya: print (i) cur.laksanakan ("UPDATE SET SET name = 'Aditya' di mana name = 'Sam'") cetak ("\ n [+] Data Selepas Kemas kini \ n") cur.laksanakan ("PILIH * DARI pekerja") selepas = cur.fetchall () untuk i in after: print (i) cur.tutup () samb.komit () samb.tutup ()

Program di atas akan mengemas kini pekerja jadual. Ia menggantikan nama Sam dengan nama Aditya di mana sahaja ia muncul dalam jadual. Lihat gambar di bawah untuk output program.

Kesimpulannya

Itulah panduan komprehensif kami untuk melaksanakan beberapa tugas asas pangkalan data SQLite menggunakan Python. Dalam tutorial yang akan datang, kita akan melihat beberapa penggunaan yang lebih maju yang akan membawa anda ke tahap pembelajaran pangkalan data SQLite untuk Python. Nantikan FOSSLinux.

Cara Menunjukkan Kaunter FPS dalam Permainan Linux
Permainan Linux mendapat dorongan utama ketika Valve mengumumkan sokongan Linux untuk klien Steam dan permainan mereka pada tahun 2012. Sejak itu, ban...
Cara memuat turun dan Mainkan Sid Meier's Civilization VI di Linux
Pengenalan permainan Civilization 6 adalah konsep moden mengenai konsep klasik yang diperkenalkan dalam siri permainan Age of Empires. Idea itu cukup ...
Cara Memasang dan Memainkan Doom di Linux
Pengenalan Doom Seri Doom berasal dari tahun 90an selepas pembebasan Doom yang asal. Ini adalah hit seketika dan sejak saat itu dan seterusnya siri pe...