Tutorial klasik...login
Tutorial klasik SQLite
pengarang:php.cn  masa kemas kini:2022-04-13 17:05:02

SQLite - Python


Pasang

SQLite3 boleh disepadukan dengan Python menggunakan modul sqlite3. Modul sqlite3 ditulis oleh Gerhard Haring. Ia menyediakan antara muka SQL yang serasi dengan spesifikasi DB-API 2.0 yang diterangkan dalam PEP 249. Anda tidak perlu memasang modul ini secara berasingan kerana versi Python 2.5.x dan ke atas disertakan dengan modul ini secara lalai.

Untuk menggunakan modul sqlite3, mula-mula anda perlu mencipta objek sambungan yang mewakili pangkalan data, dan kemudian anda boleh membuat objek kursor secara pilihan, yang akan membantu anda melaksanakan semua pernyataan SQL.

API modul sqlite3 Python

Berikut ialah program modul sqlite3 penting yang boleh memenuhi keperluan anda untuk menggunakan pangkalan data SQLite dalam program Python. Jika anda memerlukan butiran lanjut, lihat dokumentasi rasmi untuk modul Python sqlite3.

Nombor SiriAPI & Penerangan
1sqlite3. connect (pangkalan data [,masa tamat ,argumen pilihan lain])

API ini membuka pautan ke pangkalan data fail pangkalan data SQLite. Anda boleh menggunakan ":memory:" untuk membuka sambungan pangkalan data ke pangkalan data dalam RAM dan bukannya pada cakera. Jika pangkalan data berjaya dibuka, objek sambungan dikembalikan.

Apabila pangkalan data diakses oleh berbilang sambungan dan salah satu daripadanya mengubah suai pangkalan data, pangkalan data SQLite dikunci sehingga transaksi dilakukan. Parameter tamat masa menunjukkan tempoh sambungan menunggu untuk dikunci sehingga pengecualian berlaku dan sambungan terputus. Parameter tamat masa menjadi lalai kepada 5.0 (5 saat).

Jika nama fail nama pangkalan data yang diberikan tidak wujud, panggilan ini akan mencipta pangkalan data. Jika anda tidak mahu mencipta pangkalan data dalam direktori semasa, anda boleh menentukan nama fail dengan laluan, yang akan membolehkan anda mencipta pangkalan data di mana-mana sahaja.

2connection.cursor([cursorClass])

Rutin ini mencipta kursor , akan digunakan dalam pengaturcaraan pangkalan data Python. Kaedah ini menerima satu parameter pilihan cursorClass. Jika parameter ini disediakan, ia mestilah kelas kursor tersuai yang memanjangkan sqlite3.Cursor.

3cursor.execute(sql [, parameter pilihan])

Rutin ini melaksanakan SQL kenyataan. Pernyataan SQL boleh dijadikan parameter (iaitu, menggunakan ruang letak dan bukannya teks SQL). Modul sqlite3 menyokong dua jenis ruang letak: tanda soal dan ruang letak bernama (gaya bernama).

Contohnya: cursor.execute("masukkan ke dalam nilai orang (?, ?)", (siapa, umur))

4connection.execute(sql [, optional parameters])

Rutin ini ialah pintasan kepada kaedah di atas yang disediakan oleh objek kursor, yang dilaksanakan dengan memanggil kursor (kursor) kaedah mencipta objek kursor perantaraan dan kemudian memanggil kaedah pelaksanaan kursor dengan parameter yang diberikan.

5cursor.executemany(sql, seq_of_parameters)

Rutin ini memetakan semua parameter atau pemetaan dalam seq_of_parameters Laksana Perintah SQL.

6connection.executemany(sql[, parameters])

Rutin ini ialah Panggil kaedah kursor untuk mencipta pintasan ke objek kursor perantaraan, dan kemudian panggil kaedah laksanakan banyak kursor dengan parameter yang diberikan.

7cursor.executescript(sql_script)

Setelah skrip diterima, rutin ini akan dilaksanakan Penyataan SQL berbilang. Ia mula-mula melaksanakan pernyataan COMMIT dan kemudian melaksanakan skrip SQL yang diluluskan sebagai parameter. Semua pernyataan SQL hendaklah dipisahkan dengan koma bertitik (;).

8connection.executescript(sql_script)

Rutin ini ialah kaedah kursor panggilan ) mencipta kaedah pintasan ke objek kursor perantaraan, dan kemudian memanggil kaedah executescript kursor dengan parameter yang diberikan.

9connection.total_changes()

Rutin ini mengembalikan nilai yang telah diubah suai sejak sambungan pangkalan data dibuka , jumlah bilangan baris pangkalan data yang dimasukkan atau dipadamkan.

10connection.commit()

Kaedah ini melakukan transaksi semasa. Jika anda tidak memanggil kaedah ini, sebarang tindakan yang diambil sejak panggilan terakhir anda untuk commit() tidak akan kelihatan kepada sambungan pangkalan data lain.

11connection.rollback()

Kaedah ini berputar semula sejak panggilan terakhir untuk commit( ) perubahan kepada pangkalan data sejak.

12connection.close()

Kaedah ini menutup sambungan pangkalan data. Ambil perhatian bahawa ini tidak secara automatik memanggil commit(). Jika anda menutup sambungan pangkalan data tanpa memanggil kaedah commit() sebelum ini, semua perubahan yang anda buat akan hilang!

13cursor.fetchone()

Kaedah ini mendapat baris seterusnya dalam set hasil pertanyaan dan mengembalikan Satu jujukan, apabila tiada lagi data tersedia, Tiada dikembalikan.

14kursor.fetchmany([size=cursor.arraysize])

Kaedah ini mendapat pertanyaan Kumpulan baris seterusnya dalam set hasil, dikembalikan sebagai senarai. Apabila tiada lagi baris tersedia, senarai kosong dikembalikan. Kaedah ini cuba mendapatkan seberapa banyak baris seperti yang ditentukan oleh parameter saiz.

15kursor.fetchall()

Rutin ini mendapat semua (yang selebihnya) dalam pertanyaan set baris hasil, mengembalikan senarai. Apabila tiada baris tersedia, senarai kosong dikembalikan.

Menyambung ke Pangkalan Data

Kod Python berikut menunjukkan cara menyambung ke pangkalan data sedia ada. Jika pangkalan data tidak wujud, ia akan dibuat dan objek pangkalan data akan dikembalikan.

#!/usr/bin/python

import sqlite3

conn = sqlite3.connect('test.db')

print "Opened database successfully";

Di sini anda juga boleh menyalin nama pangkalan data kepada nama tertentu :memory: yang akan mencipta pangkalan data dalam RAM. Sekarang, mari jalankan program di atas untuk mencipta pangkalan data kami test.db dalam direktori semasa. Anda boleh menukar laluan mengikut keperluan. Simpan kod di atas ke dalam fail sqlite.py dan laksanakannya seperti yang ditunjukkan di bawah. Jika pangkalan data berjaya dibuat, mesej seperti yang ditunjukkan di bawah akan dipaparkan:

$chmod +x sqlite.py
$./sqlite.py
Open database successfully

Membuat jadual

Coretan kod Python berikut akan digunakan untuk mencipta jadual dalam pangkalan data yang dibuat sebelum ini :

#!/usr/bin/python

import sqlite3

conn = sqlite3.connect('test.db')
print "Opened database successfully";

conn.execute('''CREATE TABLE COMPANY
       (ID INT PRIMARY KEY     NOT NULL,
       NAME           TEXT    NOT NULL,
       AGE            INT     NOT NULL,
       ADDRESS        CHAR(50),
       SALARY         REAL);''')
print "Table created successfully";

conn.close()

Apabila program di atas dilaksanakan, ia mencipta jadual SYARIKAT dalam test.db dan memaparkan mesej yang ditunjukkan di bawah:

Opened database successfully
Table created successfully

operasi INSERT

di bawah Program Python menunjukkan cara untuk mencipta rekod dalam jadual SYARIKAT yang dibuat di atas:

#!/usr/bin/python

import sqlite3

conn = sqlite3.connect('test.db')
print "Opened database successfully";

conn.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \
      VALUES (1, 'Paul', 32, 'California', 20000.00 )");

conn.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \
      VALUES (2, 'Allen', 25, 'Texas', 15000.00 )");

conn.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \
      VALUES (3, 'Teddy', 23, 'Norway', 20000.00 )");

conn.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \
      VALUES (4, 'Mark', 25, 'Rich-Mond ', 65000.00 )");

conn.commit()
print "Records created successfully";
conn.close()

Apabila program di atas dilaksanakan, ia mencipta rekod yang diberikan dalam jadual SYARIKAT dan memaparkan dua baris berikut:

Opened database successfully
Records created successfully

PILIH Operasi

Atur cara Python berikut menunjukkan cara mendapatkan dan memaparkan rekod daripada jadual SYARIKAT yang dibuat sebelum ini:

#!/usr/bin/python

import sqlite3

conn = sqlite3.connect('test.db')
print "Opened database successfully";

cursor = conn.execute("SELECT id, name, address, salary  from COMPANY")
for row in cursor:
   print "ID = ", row[0]
   print "NAME = ", row[1]
   print "ADDRESS = ", row[2]
   print "SALARY = ", row[3], "\n"

print "Operation done successfully";
conn.close()

Apabila atur cara di atas dilaksanakan, ia menghasilkan yang berikut keputusan:

Opened database successfully
ID =  1
NAME =  Paul
ADDRESS =  California
SALARY =  20000.0

ID =  2
NAME =  Allen
ADDRESS =  Texas
SALARY =  15000.0

ID =  3
NAME =  Teddy
ADDRESS =  Norway
SALARY =  20000.0

ID =  4
NAME =  Mark
ADDRESS =  Rich-Mond
SALARY =  65000.0

Operation done successfully

Kemas kini Operasi

Kod Python berikut menunjukkan cara untuk mengemas kini sebarang rekod menggunakan kenyataan KEMASKINI dan kemudian mendapatkan dan memaparkan rekod yang dikemas kini daripada jadual SYARIKAT:

#!/usr/bin/python

import sqlite3

conn = sqlite3.connect('test.db')
print "Opened database successfully";

conn.execute("UPDATE COMPANY set SALARY = 25000.00 where ID=1")
conn.commit
print "Total number of rows updated :", conn.total_changes

cursor = conn.execute("SELECT id, name, address, salary  from COMPANY")
for row in cursor:
   print "ID = ", row[0]
   print "NAME = ", row[1]
   print "ADDRESS = ", row[2]
   print "SALARY = ", row[3], "\n"

print "Operation done successfully";
conn.close()

Pelaksanaan program di atas Apabila 🎜>

Opened database successfully
Total number of rows updated : 1
ID =  1
NAME =  Paul
ADDRESS =  California
SALARY =  25000.0

ID =  2
NAME =  Allen
ADDRESS =  Texas
SALARY =  15000.0

ID =  3
NAME =  Teddy
ADDRESS =  Norway
SALARY =  20000.0

ID =  4
NAME =  Mark
ADDRESS =  Rich-Mond
SALARY =  65000.0

Operation done successfully

Apabila program di atas dilaksanakan, ia akan menghasilkan keputusan berikut:

#!/usr/bin/python

import sqlite3

conn = sqlite3.connect('test.db')
print "Opened database successfully";

conn.execute("DELETE from COMPANY where ID=2;")
conn.commit
print "Total number of rows deleted :", conn.total_changes

cursor = conn.execute("SELECT id, name, address, salary  from COMPANY")
for row in cursor:
   print "ID = ", row[0]
   print "NAME = ", row[1]
   print "ADDRESS = ", row[2]
   print "SALARY = ", row[3], "\n"

print "Operation done successfully";
conn.close()