dan akhirnya meneroka beberapa ciri canggih yang disediakan oleh sqlite3
untuk memudahkan kerja kami. sqlite3
NOTA: Sebelum anda memulakan, sebaiknya akrab dengan SQL. Jika anda tidak biasa dengannya, anda boleh merujuk kepada pembelajaran SQL hanya.
mata teras- SQLITE adalah sistem pengurusan pangkalan data berasaskan fail yang biasa digunakan dalam aplikasi Python kerana kesederhanaan dan kemudahan konfigurasi. Ia menyokong akses serentak, membolehkan pelbagai proses atau benang mengakses pangkalan data yang sama. Walau bagaimanapun, ia tidak mempunyai keupayaan pelbagai pengguna dan tidak diuruskan sebagai proses seperti teknologi pangkalan data lain seperti MySQL atau PostgreSQL.
- Modul
- dalam python menyediakan SQLite dengan SQLite dan dipasang dengan python. Ia membolehkan pengguna membuat pangkalan data, menyambung ke pangkalan data, membuat jadual, memasukkan data, dan melaksanakan arahan SQL. Modul ini juga menyokong ruang letak, yang membolehkan penggantian parameter dalam arahan SQL, menjadikannya lebih mudah untuk memasukkan pembolehubah ke dalam pertanyaan.
sqlite3
Transaksi dalam SQLite adalah satu siri operasi pangkalan data yang dianggap sebagai unit untuk memastikan integriti data. Modul Python - memulakan transaksi sebelum melaksanakan memasukkan, mengemas kini, memadam, atau menggantikan pernyataan. Pengguna mesti memanggil kaedah
sqlite3
untuk menyimpan perubahan yang dibuat semasa urus niaga dan secara jelas boleh mengendalikan transaksi dengan menetapkancommit()
keisolation_level
apabila menyambung ke pangkalan data.None
Moto SQLite adalah: "Kecil, cepat, dan boleh dipercayai. Pilih dua daripadanya."
SQLite adalah perpustakaan pangkalan data tertanam yang ditulis dalam bahasa C. Anda mungkin biasa dengan teknologi pangkalan data lain, seperti MySQL atau PostgreSQL. Teknik-teknik ini menggunakan kaedah pelayan klien: pangkalan data dipasang sebagai pelayan dan kemudian sambungkannya menggunakan klien. SQLite adalah berbeza: ia dipanggil pangkalan data tertanam kerana ia termasuk dalam program sebagai perpustakaan. Semua data disimpan dalam fail -biasanya dengan sambungan .db -dan anda boleh menggunakan fungsi untuk menjalankan penyataan SQL atau melakukan tindakan lain pada pangkalan data.
Penyelesaian storan berasaskan fail juga menyediakan akses serentak, yang bermaksud pelbagai proses atau benang boleh mengakses pangkalan data yang sama. Jadi, untuk apa SQLite? Adakah sesuai untuk sebarang jenis aplikasi?
SQLite berfungsi dengan baik dalam situasi berikut:
- Oleh kerana ia dimasukkan ke dalam kebanyakan sistem operasi mudah alih seperti Android dan iOS, SQLite mungkin pilihan yang sempurna jika anda memerlukan penyelesaian penyimpanan data tanpa pelayan.
- Berbanding dengan menggunakan fail CSV yang besar, anda boleh mengambil kesempatan daripada kuasa SQL dan meletakkan semua data anda ke dalam pangkalan data SQLite tunggal.
- SQLite boleh digunakan untuk menyimpan data konfigurasi untuk aplikasi. Malah, SQLite adalah 35% lebih cepat daripada sistem berasaskan fail seperti fail konfigurasi.
- Tidak seperti MySQL atau PostgreSQL, SQLite tidak mempunyai keupayaan berbilang pengguna.
- SQLite masih merupakan pangkalan data berasaskan fail, bukan perkhidmatan. Anda tidak boleh menguruskannya sebagai proses, dan tidak boleh memulakan, menghentikannya, atau menguruskan penggunaan sumber.
Seperti yang saya nyatakan dalam Pengenalan, SQLite adalah perpustakaan C. Walau bagaimanapun, terdapat banyak bahasa yang menulis antara muka, termasuk Python. Modul
menyediakan antara muka SQL dan memerlukan sekurang -kurangnya SQLite 3.7.15. sqlite3
boleh didapati dengan Python, jadi anda tidak perlu memasang apa -apa. sqlite3
sudah tiba masanya untuk menulis kod! Pada bahagian pertama, kami akan membuat pangkalan data asas. Perkara pertama yang perlu dilakukan ialah membuat pangkalan data dan sambungkannya:
import sqlite3 dbName = 'database.db' try: conn = sqlite3.connect(dbName) cursor = conn.cursor() print("Database created!") except Exception as e: print("Something bad happened: ", e) if conn: conn.close()Dalam baris 1, kami mengimport perpustakaan
. Kemudian, dalam blok kod sqlite3
, kami panggil try/except
untuk memulakan sambungan ke pangkalan data. Jika semuanya berjalan lancar, sqlite3.connect()
akan menjadi contoh objek conn
. Jika Connection
gagal, kami akan mencetak pengecualian yang diterima dan menutup sambungan ke pangkalan data. Seperti yang dinyatakan dalam dokumentasi rasmi, setiap pangkalan data SQLite terbuka diwakili oleh objek try
. Setiap kali kita perlu melaksanakan arahan SQL, objek Connection
mempunyai kaedah yang dipanggil Connection
. Dalam teknologi pangkalan data, kursor adalah struktur kawalan yang membolehkan rekod melintasi dalam pangkalan data. cursor()
<code>> Database created!</code>Jika kita melihat folder di mana skrip Python terletak, kita harus melihat fail baru bernama
. Fail ini dibuat secara automatik oleh database.db
. sqlite3
Pada ketika ini, kami bersedia untuk membuat jadual baru, menambah entri pertama dan melaksanakan arahan SQL seperti Pilih, Kemas kini, atau Drop.
Untuk membuat jadual, kita hanya perlu melaksanakan pernyataan SQL yang mudah. Dalam contoh ini, kami akan membuat jadual
dengan data berikut: students
selepas baris print("Database created!")
, tambahkan yang berikut:
import sqlite3 dbName = 'database.db' try: conn = sqlite3.connect(dbName) cursor = conn.cursor() print("Database created!") except Exception as e: print("Something bad happened: ", e) if conn: conn.close()
Kami membuat jadual dan memanggil kaedah cursor.execute()
, yang digunakan apabila kami mahu melaksanakan satu pernyataan SQL tunggal.
Kemudian, kami melakukan operasi sisipan untuk setiap baris yang kami mahu tambah. Selepas semua perubahan selesai, kami memanggil conn.commit()
untuk menyerahkan transaksi yang belum selesai ke pangkalan data. Jika kaedah commit()
tidak dipanggil, apa -apa perubahan yang belum selesai pada pangkalan data akan hilang. Akhirnya, kami menutup sambungan ke pangkalan data dengan memanggil kaedah conn.close()
.
Baiklah, sekarang mari kita tanya pangkalan data kami! Kami memerlukan pemboleh ubah untuk memegang hasil pertanyaan, jadi mari kita simpan hasil cursor.execute()
kepada pembolehubah yang dinamakan records
:
<code>> Database created!</code>
Setelah melakukan ini, kita akan melihat semua output rekod ke output standard:
# 创建操作 create_query = '''CREATE TABLE IF NOT EXISTS student( id INTEGER PRIMARY KEY, name TEXT NOT NULL, surname TEXT NOT NULL); ''' cursor.execute(create_query) print("Table created!") # 插入和读取操作 cursor.execute("INSERT INTO student VALUES (1, 'John', 'Smith')") print("Insert #1 done!") cursor.execute("INSERT INTO student VALUES (2, 'Lucy', 'Jacobs')") print("Insert #2 done!") cursor.execute("INSERT INTO student VALUES (3, 'Stephan', 'Taylor')") print("Insert #3 done!") conn.commit() conn.close()
Pada ketika ini, anda mungkin menyedari bahawa dalam kaedah cursor.execute()
, kami meletakkan arahan SQL yang mesti dilaksanakan. Jika kita mahu melaksanakan arahan SQL yang lain (seperti kemas kini atau penurunan), sintaks Python tidak akan mengubah apa -apa.
Placeholder
Kaedah cursor.execute()
memerlukan rentetan sebagai hujah. Dalam bahagian sebelumnya, kami melihat cara memasukkan data ke dalam pangkalan data kami, tetapi semuanya ditodakan. Bagaimana jika kita perlu menyimpan kandungan dalam pembolehubah ke dalam pangkalan data? Untuk tujuan ini, sqlite3
mempunyai beberapa ciri pintar yang dipanggil tempat letak. Pemegang letak membolehkan kami menggunakan penggantian parameter, yang akan memudahkan untuk memasukkan pembolehubah ke dalam pertanyaan.
mari kita lihat contoh ini:
records = cursor.execute("SELECT * FROM student") for row in records: print(row)
Kami mencipta satu kaedah yang dipanggil insert_command()
. Kaedah ini menerima empat parameter: parameter pertama adalah contoh Connection
, dan tiga yang lain akan digunakan dalam arahan SQL kami.
dalam pembolehubah command
?
mewakili pemegang tempat. Ini bermakna jika anda memanggil student_id=1
, name='Jason'
dan surname='Green'
, pernyataan sisipan akan menjadi insert_command
. INSERT INTO student VALUES(1, 'Jason', 'Green')
, kita lulus perintah kita dan semua pembolehubah yang akan digantikan dengan ruang letak. Mulai sekarang, setiap kali kita perlu memasukkan baris ke dalam jadual execute()
, kita akan memanggil kaedah student
dengan parameter yang diperlukan. insert_command()
Saya akan mengkaji dengan cepat kepentingannya walaupun anda tidak baru untuk definisi transaksi. Transaksi adalah satu siri operasi yang dilakukan pada pangkalan data dan secara logik dianggap sebagai unit.
Kelebihan yang paling penting dalam transaksi adalah untuk memastikan integriti data. Dalam contoh yang kami diperkenalkan di atas, ia mungkin tidak berguna, tetapi urus niaga mempunyai kesan apabila kami memproses lebih banyak data yang disimpan dalam pelbagai jadual.
Modul
Python's sqlite3
memulakan transaksi sebelum execute()
dan executemany()
laksanakan memasukkan, mengemas kini, memadam, atau menggantikan pernyataan. Ini bermakna dua perkara:
- kita mesti memberi perhatian untuk memanggil kaedah
commit()
. Jika kita memanggilcommit()
tanpa melaksanakanConnection.close()
, semua perubahan yang kita buat semasa urus niaga akan hilang. - kita tidak dapat membuka urus niaga dengan permulaan dalam proses yang sama.
penyelesaian? Urus niaga proses secara eksplisit.
bagaimana? Dengan menggunakan panggilan fungsi sqlite3.connect(dbName, isolation_level=None)
bukan sqlite3.connect(dbName)
. Dengan menetapkan isolation_level
ke None
, kami memaksa sqlite3
untuk tidak membuka transaksi secara tersirat.
Kod berikut adalah penulisan semula kod sebelumnya, tetapi secara eksplisit menggunakan transaksi:
import sqlite3 dbName = 'database.db' try: conn = sqlite3.connect(dbName) cursor = conn.cursor() print("Database created!") except Exception as e: print("Something bad happened: ", e) if conn: conn.close()
Kesimpulan
Saya harap anda mempunyai pemahaman yang baik tentang apa yang SQLite, bagaimana menggunakannya untuk projek Python anda, dan bagaimana beberapa ciri canggihnya berfungsi. Menguruskan urus niaga secara eksplisit boleh menjadi agak rumit pada mulanya, tetapi ia pasti dapat membantu anda memanfaatkannya. sqlite3
- Bermula dengan SQLite3: Perintah Asas
- bermula dengan ujian unit python menggunakan Unittest dan Pytest
- Urus data dalam aplikasi iOS menggunakan SQLite
- Panduan Pemula Permintaan Python HTTP
- SQL dan NOSQL: perbezaan
Apa itu SQLite dan mengapa saya menggunakannya dengan Python? SQLITE adalah sistem pengurusan pangkalan data berasaskan fail yang ringan dan berasaskan fail. Ia digunakan secara meluas dalam aplikasi pangkalan data tertanam kerana kesederhanaan dan konfigurasi minimumnya. Menggunakan SQLite dengan Python menyediakan cara yang mudah untuk mengintegrasikan pangkalan data ke dalam aplikasi Python tanpa memerlukan pelayan pangkalan data yang berasingan.
Bagaimana untuk menyambung ke pangkalan data SQLite di Python? Anda boleh menggunakan modul
(dipasangkan dengan python) untuk menyambung ke pangkalan data SQLite. Gunakan kaedah sqlite3
untuk mewujudkan sambungan dan dapatkan objek sambungan, dan kemudian buat kursor untuk melaksanakan perintah SQL. connect()
pada objek kursor. Untuk membuat jadual, gunakan pernyataan execute()
. CREATE TABLE
untuk memasukkan data ke dalam jadual. Pemegang letak INSERT INTO
atau %s
boleh digunakan untuk pertanyaan parameter untuk mengelakkan suntikan SQL. ?
dan commit()
pada objek sambungan. Letakkan pelbagai arahan SQL antara rollback()
dan begin
untuk memastikan ia dianggap sebagai transaksi tunggal. commit
Atas ialah kandungan terperinci Pengenalan kepada SQLite dengan Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Numpyarraysarebetterfornumericationsoperationsandmulti-dimensialdata, whiletheArrayModuleissuitiableforbasic, ingatan-efisienArrays.1) numpyexcelsinperformanceandfunctionalityforlargedatasetsandcomplexoperations.2) thearrayModeMoremoremory-efficientModeMoremoremoremory-efficientModeMoremoremoremory-efficenceismemoremoremoremoremoremoremoremory-efficenceismemoremoremoremoremorem

NumpyarraysareBetterforheavynumericalcomputing, whilethearraymoduleismoresuitifFormemory-constrainedprojectswithsimpledatypes.1) numpyarraysofferversativilityandperformanceForlargedATAsetSandcomplexoperations.2)

ctypesallowscreatingandmanipulatingc-stylearraysinpython.1) usectypestointerwithclibrariesforperformance.2) createec-stylearraysfornumericalcomputations.3) Passarraystocfuntionsforficientsoperations.however, becautiousofmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmem

InPython,a"list"isaversatile,mutablesequencethatcanholdmixeddatatypes,whilean"array"isamorememory-efficient,homogeneoussequencerequiringelementsofthesametype.1)Listsareidealfordiversedatastorageandmanipulationduetotheirflexibility

Pythonlistsandarraysarebothmutable.1) listsareflexibleandsupportheterogeneousdatabutarelessmememory.2) arraysaremorememoremoryficorhomogeneousdatabutlessatile, memerlukanCorrectypecodeusagetoavoiderrors.

Python dan C masing -masing mempunyai kelebihan sendiri, dan pilihannya harus berdasarkan keperluan projek. 1) Python sesuai untuk pembangunan pesat dan pemprosesan data kerana sintaks ringkas dan menaip dinamik. 2) C sesuai untuk prestasi tinggi dan pengaturcaraan sistem kerana menaip statik dan pengurusan memori manual.

Memilih Python atau C bergantung kepada keperluan projek: 1) Jika anda memerlukan pembangunan pesat, pemprosesan data dan reka bentuk prototaip, pilih Python; 2) Jika anda memerlukan prestasi tinggi, latensi rendah dan kawalan perkakasan yang rapat, pilih C.

Dengan melabur 2 jam pembelajaran python setiap hari, anda dapat meningkatkan kemahiran pengaturcaraan anda dengan berkesan. 1. Ketahui Pengetahuan Baru: Baca dokumen atau tutorial menonton. 2. Amalan: Tulis kod dan latihan lengkap. 3. Kajian: Menyatukan kandungan yang telah anda pelajari. 4. Amalan Projek: Sapukan apa yang telah anda pelajari dalam projek sebenar. Pelan pembelajaran berstruktur seperti ini dapat membantu anda menguasai Python secara sistematik dan mencapai matlamat kerjaya.


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

Muat turun versi mac editor Atom
Editor sumber terbuka yang paling popular

MinGW - GNU Minimalis untuk Windows
Projek ini dalam proses untuk dipindahkan ke osdn.net/projects/mingw, anda boleh terus mengikuti kami di sana. MinGW: Port Windows asli bagi GNU Compiler Collection (GCC), perpustakaan import yang boleh diedarkan secara bebas dan fail pengepala untuk membina aplikasi Windows asli termasuk sambungan kepada masa jalan MSVC untuk menyokong fungsi C99. Semua perisian MinGW boleh dijalankan pada platform Windows 64-bit.

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Versi Mac WebStorm
Alat pembangunan JavaScript yang berguna
