Programmeerimine

SQLite andmebaasiga Pythonis töötamise alused

SQLite andmebaasiga Pythonis töötamise alused

Andmebaas on üks kõige kasulikumaid ja populaarsemaid faile andmete salvestamiseks; neid saab kasutada igasuguste andmete, sealhulgas teksti, numbrite, piltide, binaarandmete, failide jms salvestamiseks. SQLite on SQL-i keelel põhinev relatsiooniline andmebaaside haldussüsteem. See on C-teek ja see pakub API-d töötamiseks teiste programmeerimiskeeltega, sealhulgas Pythoniga. See ei nõua eraldi serveriprotsessi käivitamist vastavalt vajadusele suurtes andmebaasimootorites nagu MySQL ja Postgresql.

See on kiire ja kerge ning kogu andmebaas on salvestatud ühte kettafaili, mis muudab selle kaasaskantavaks nagu CSV või muud andmekandefailid. Paljud rakendused kasutavad SQLite'i andmete sisemiseks salvestamiseks, peamiselt sellistes keskkondades nagu mobiilseadmed või väikesed rakendused.

SQLite andmebaas Pythoni jaoks

Sukeldume SQLite koos Pythoni programmeerimiskeelega. Selles õpetuses õpime SQLite kasutamise eeliseid, Python sqlite3 mooduli põhitõdesid, tabeli loomist andmebaasis, andmete sisestamist tabelisse, andmete pärimist tabelist ja tabeli andmete värskendamist.

SQLite kasutamise eelised

SQLite kasutamise peamised eelised on järgmised:

SQLite'i kasutatakse Google Chrome'is ka küpsiste, kasutajaandmete ja muude oluliste andmete, sealhulgas kasutaja paroolide salvestamiseks. Android OS kasutab andmete salvestamiseks ka peamist andmebaasimootorit SQLite.

Pythoni SQLite3 moodul

SQLite'i kasutamiseks peame oma süsteemi installima Pythoni. Kui teil pole Pythoni juba teie süsteemi installitud, saate meie samm-sammult tutvuda Pythoni installimisega Linuxi. Võiksime kasutada Pythonis SQLite'i, kasutades sqlite3 moodul, mis on saadaval Pythoni tavakogus. Gerhard Häring kirjutas sqlite3 mooduli; see pakub DB-API 2-ga ühilduvat SQL-liidest.0. See on eelinstallitud Pythoni standardraamatukoguga, seega ei pea me edasise installimise pärast muretsema.

Andmebaasiga ühenduse loomine

Esimene samm Pythonis SQLite'iga töötamise ajal on ühenduse loomine andmebaasiga. Saame seda teha, kasutades ühenduse loomiseks meetodit sqlite3 connect (). Näite saamiseks vaadake järgmist koodi. Võite koodi lihtsalt IDE-sse või tekstiredaktorisse kopeerida ja selle käivitada. Kui teil on Pythoni jaoks IDE valimisega probleeme, võite viidata meie juhendile parima Pythoni IDE võrdlemise kohta. Kood on soovitatav oma IDE-sse uuesti kirjutada ja kui soovite koodi kopeerida, kontrollige palun siin oleva koodiga süntaksit.

# vajalike moodulite importimine importib sqlite3 # ühenduse loomine andmebaasiga conn = sqlite3.ühenda ("proov.db ") print (" Andmebaasiga edukalt ühendatud ") # ühenduse ühenduse sulgemine.Sulge()

Ülaltoodud programm loob ühenduse SQLite andmebaasifailiga “näidis.db.”See annab terminalis järgmise väljundi.

Vaatame, mis toimub ülaltoodud koodis. Esimesel real oleme importinud sqlite3 mooduli, mis aitab meil töötada Pythonis SQLite andmebaasidega.

Teisel real loome ühenduse SQLite andmebaasifailiga, mille nimi on “näidis.db ”kasutades ühendama () funktsioon. Funktsioon connect () aktsepteerib argumendina andmebaasifaili tee. Kui faili antud tees ei eksisteeri, loob ta ise uue tee, millel on antud nimi, uue andmebaasifaili. Funktsioon connect () tagastab meie programmis andmebaasi objekti; salvestame tagastatud objekti muutuja nimega ühend.

Meie programmi kolmas rida on lihtne printida avaldus eduka ühenduse kohta sõnumi kuvamiseks. Programmi viimane rida katkestab ühenduse andmebaasiga, kasutades Sulge() ühenduse objekti funktsioon.

Eelmises näites oleme andmebaasi kettale loonud, kuid võime ka andmebaasi luua esmase mälu RAM-i. Andmebaasi loomine RAM-is muudab andmebaasi käivitamise tavapärasest kiiremaks. Sellegipoolest luuakse andmebaas ajutiselt ja kui programmi täitmine peatub, kustutab see andmebaasi mälust. Andmebaasi saame luua mällu, edastades argumendile konkreetse nime: memory: ühendama () funktsioon. Vaadake allolevat programmi illustratsioonina.

impordi sqlite3 conn = sqlite3.connect (": memory:") print ("\ n [+] Andmebaas on mälus edukalt loodud") conn.Sulge()

Ülaltoodud programm loob RAM-i andmebaasi ja saame seda kasutada peaaegu kõigi kettale loodud andmebaasidega tehtavate ülesannete täitmiseks. See meetod on kasulik ajutise virtuaalse andmebaasi loomisel mingil põhjusel.

SQLite3 kursor

Akursor objekt on meie liides andmebaasiga, mis võimaldab käivitada mis tahesSQL-päring andmebaasis. SQL-skriptide käivitamiseks sqlite3 abil peame looma kursoriobjekti. Kursoriobjekti loomiseks peame kasutama kursor () meetod ühendus objekt. Saame luua oma andmebaasi kursoriobjekti järgmise koodi abil.

# vajalike moodulite importimine importib sqlite3 # ühenduse loomine andmebaasiga conn = sqlite3.ühenda ("proov.db ") print (" \ n [+] Andmebaasiga edukalt ühendatud ") cur = conn.kursor () print ("\ n [+] Kursor on edukalt seadistatud") cur.sulge () # ühenduskontakti sulgemine.Sulge()

Kui programm on täidetud, kuvatakse väljund, nagu on näidatud alloleval pildil.

Vaatame, kuidas ülaltoodud kood töötab. Ülaltoodud koodis loob esimene, teine, kolmas ühenduse andmebaasiga, nagu varem näidatud. Neljandas reas oleme kasutanud kursor () ühenduse objekti meetod kursoriobjekti loomiseks ja tagastatud kursoriobjekti salvestamiseks muutujasse nimega "cur". Viies rida on kindral print () avaldus. Kuuendal real hävitasime kursori objekti mälust, kasutades Sulge() kursoriobjekti meetod.

SQLite andmetüübid

Enne kui edasi minna, mõistkem kõigepealt SQLite andmetüüpe. SQLite andmebaasimootoril on mitu salvestusklassid mitut tüüpi andmete, sealhulgas teksti, binaarandmete, täisarvu jne salvestamiseks. Igal väärtusel on üks järgmistest andmetüüpidest.

SQLite DataTypes:

SQLite ja Pythoni andmetüüpide võrdlus

On palju kordi, kui peame mõne Pythoni andmetüüpi kasutama SQL-i andmete salvestamiseks ja mõningate toimingute sooritamiseks. Sellise asja tegemiseks peame teadma, millised SQL-i andmetüübid on seotud mõne pythoni andmetüübiga.

Järgmised Pythoni tüübid on SQLite andmetüüpidega mõnevõrra sarnased:

Pythoni tüüp SQLite tüüp
Puudub NULL
int INTEGRE
ujuk PÄRIS
str TEKST
baiti MÄNG

SQLite abil tabeli loomine

SQLite abil tabeli loomiseks peame kasutama LOE TABEL SQL-i avaldus täitma () kursoriobjekti meetod. SQL-i lause CREATE TABLE põhisüntaks on näidatud allpool:

CREATE TABLE tabeli_nimi (veeru_nimi Andmete_tüübi piirang,… veeru_nimi Andmete_tüübi piirang);

Eespool nimetatud SQLite-lause kasutamiseks Pythonis peame käivitama allpool toodud näidisprogrammi. See loob meie andmebaasi töötaja nimelise tabeli.

impordi sqlite3 conn = sqlite3.ühenda ("proov.db ") print (" \ n [+] Andmebaasiga edukalt ühendatud ") cur = conn.kursor () print ("\ n [+] Kursor on edukalt seadistatud") tabel = cur.execute ("" "CREATE TABLE töötaja (id INT PRIMARY KEY, name CHAR (25), palk CHAR (25), joining_date DATE);" "") print ("\ n [+] Tabel on edukalt loodud") cur.sulge () ühend.Sulge()

Ülaltoodud programmis lõime töötaja atribuutidega tabel id, nimi, palk, ja liitumise kuupäev. Seda tabelit saab nüüd kasutada andmete salvestamiseks või andmete päringuteks vastavalt nõuetele. Terminalis näete järgmist väljundit.

Ülaltoodud koodis oleme kasutanud täitma () meetod kursoriobjekti käivitamiseks SQL-i käsk antud veergudega tabeli loomiseks.

Andmete sisestamine tabelisse

Oleme oma SQLite andmebaasis loonud tabeli. Sisestage nüüd SQL-i abil sinna mõned andmed. SQL-i INSERT-lause peamine süntaks on:

INSERT INTO tabeli_nimi (veergude_nimi_1, veergude_nimi_2,…) VALUES (veergude_andmed_1, veergude_andmed_1,…)

Ülaltoodud süntaksis tabeli_nimi on selle tabeli nimi, kuhu soovime oma andmed sisestada. The veeru_nimi_1, veeru_nimi_2, on tabelis olevate veergude nimed. The veeru_andmed_1, veeru_andmed_2,… on andmed, mida soovime antud veergudesse sisestada.

Andmete tabelisse lisamiseks näeme praktilist demot. Lisame mõned andmed oma nimega tabelisse töötaja SQLite ja Pythoni abil. Andmete tabelisse sisestamiseks käivitage allolev kood.

impordi sqlite3 conn = sqlite3.ühenda ("proov.db ") print (" \ n [+] Andmebaasiga edukalt ühendatud ") cur = conn.kursor () print ("\ n [+] Kursor on edukalt seadistatud") cur.täitma ("INSERT INTO töötaja (ID, nimi, palk, liitumiskuupäev) VALUES (1001, 'David', 50000, '1-08-2019')") cur.täitma ("INSERT INTO töötaja (ID, nimi, palk, liitumiskuupäev) VALUES (1002, 'Sam', 80000, '3-09-2020')") cur.täitma ("INSERT INTO töötaja (ID, nimi, palk, liitumiskuupäev) VALUES (1003, 'Roshan', 90000, '08.08.2020')") cur.täitma ("INSERT INTO töötaja (ID, nimi, palk, liitumiskuupäev) VALUES (1004, 'Kishan', 100000, '9-09-2020')") cur.execute ("INSERT INTO töötaja (ID, nimi, palk, liitumiskuupäev) VALUES (1005, 'Ankit', 111000, '10 -05-2019 ')") print ("\ n [+] Andmed on edukalt sisestatud" ) cur.sulge () ühend.toime panema () ühendama.Sulge()

Ülaltoodud kood sisestab mõned andmed kausta töötaja oleme varem loonud. Vaatame, mis koodis toimub. Esimest viit rida kasutatakse andmebaasiga ühenduse loomiseks ja kursori seadistamiseks. Ridadel kuuest kümneni peame töötajate tabelisse andmete sisestamiseks kasutama SQL-i käsku INSERT. Peame kasutama töötajate tabeli veergude nime esimeses sulgudes ja veergude andmeid teises sulgudes. Peame lihtsalt kasutama pühenduma () meetod enne ühenduse katkestamist andmebaasiga, muidu meie tehtud muudatusi andmebaasi ei salvestata.

Andmete pärimine tabelist

Oleme õppinud, kuidas sisestada andmeid SQLite'i andmebaasi, kuid peame ka andmebaasist päringuid tegema, et neid saaks kasutada meie programm või kasutajad. Andmete pärimiseks saame meetodi execute () all kasutada SQL-i käsku SELECT. SELECT-lause põhisüntaks on näidatud allpool.

Valige veergude_nimed FROM tabeli_nimi

The veergude_nimed süntaksis on veergude nimi, mida peame päringut tegema. Need veerud peavad olema tabelis, mille nimi on antud veeru asemel tabeli_nimi. Vaatame nüüd, kuidas saaksime seda süntaksit kasutada töötajate tabelist andmete pärimiseks. Illustreerimise nägemiseks käivitage lihtsalt järgmine kood.

impordi sqlite3 conn = sqlite3.ühenda ("proov.db ") print (" \ n [+] Andmebaasiga edukalt ühendatud ") cur = conn.kursor () print ("\ n [+] Kursor on edukalt seadistatud") cur.execute ("SELECT id, nimi töötajalt nimi") tabel = cur.i tabel i jaoks fetchall (): print (i) cur.sulge () ühend.toime panema () ühendama.Sulge()

Ülaltoodud programmi pakutav väljund on näidatud allpool.

Ülaltoodud programm esitab veergudele päringu töötaja tabelist id ja nimi. Saame tagastatud andmeid koguda, kasutades fetchall () kursoriobjekti meetod. Tagastatud andmed on pythoni loend, mis sisaldab meie päritud ridu. Üksikute ridade kuvamiseks peame loendi kordamiseks kasutama tsüklit Python; Python for loopi kohta saate lugeda siit. Vaatame nüüd mõningaid kasulikke asju, mida saame SELECT-lausega teha.

Too tabelist kõik andmed

Mõnikord on vaja kõik kirjed andmebaasi tabelist tuua. Kõigi kirjete saamiseks SQL-i lause SELECT abil peame järgima allpool toodud põhisüntaksit:

VALI * FROM tabeli_nimi

The * sümbolit kasutatakse kõigi veergude tähistamiseks ja seda kasutades saame küsida SQLite tabeli kõiki veerge. Kõigi kirjete toomiseks varem loodud tabelitöötajalt peame käivitama järgmise koodi.

impordi sqlite3 conn = sqlite3.ühenda ("proov.db ") print (" \ n [+] Andmebaasiga edukalt ühendatud ") cur = conn.kursor () print ("\ n [+] Kursor on edukalt seadistatud") cur.execute ("SELECT * FROM töötaja") read = cur.fetchall () print ("\ n [+] andmete päring \ n") i jaoks ridades: print (i) cur.sulge () ühend.toime panema () ühendama.Sulge()

Ülaltoodud kood kuvab kõik varem loodud töötajate tabelis olevad kirjed. Programmi väljund on umbes selline:

Päringu andmed kindlas järjekorras

Mõnikord peame tabelist päringuid tegema kindlas järjekorras nagu tõusev või kahanev. Andmete järjekorras kuvamiseks saame kasutada lauset SELECT koos märksõnaga ORDER BY. SELECT-lause märksõna ORDER BY põhisüntaks on:

Valige veergude_nimi FROM tabeli_nimi TELLI veergude_nimi järgi

Vaatame, kuidas saame märksõna ORDER BY abil kuvada töötaja tabeli järjekorra andmeid nime järgi.

impordi sqlite3 conn = sqlite3.ühenda ("proov.db ") print (" \ n [+] Andmebaasiga edukalt ühendatud ") cur = conn.kursor () print ("\ n [+] Kursor on edukalt seadistatud") cur.execute ("SELECT * FROM töötaja ORDER BY name") tabel = cur.i tabel i jaoks fetchall (): print (i) cur.sulge () ühend.toime panema () ühendama.Sulge()

Võite näha ülaltoodud koodi väljundit, nagu allpool näidatud.

Väljundis võite märgata, et andmed on kuvatud veeru kasvavas järjekorras nimi.

Kirjete värskendamine tabelis

On palju olukordi, kui tahame oma andmebaaside tabelit uuendada. Näiteks kui kasutame andmebaasi koolirakenduse jaoks, peame andmed värskendama, kui õpilane siirdub uude linna. Saame kiiresti värskendada oma andmebaasi mis tahes tabeli rida, kasutades UUENDAMINE SQL-i lause lause execute () meetodis. Töötaja valimiseks peame tingimusena kasutama SQL-i WHERE-klauslit. Põhisüntaks UUENDAMINE avaldus on näidatud allpool.

UPDATE tabeli_nimi SET värskendus_ nõutav WHERE Some_condition

Vaadake allpool toodud näidet väite UPDATE illustreerimiseks.

impordi sqlite3 conn = sqlite3.ühenda ("proov.db ") print (" \ n [+] Andmebaasiga edukalt ühendatud ") cur = conn.kursor () print ("\ n [+] Kursor on edukalt seadistatud") print ("\ n [+] Andmed enne värskendamist \ n") cur.execute ("SELECT * FROM töötaja") enne = cur.fetchall () i jaoks enne: print (i) cur.execute ("UPDATE töötaja SET nimi = 'Aditya' kus nimi = 'Sam'") print ("\ n [+] andmed pärast värskendust \ n") cur.execute ("SELECT * FROM töötaja") pärast = cur.fetchall () i jaoks pärast: print (i) cur.sulge () ühend.toime panema () ühendama.Sulge()

Ülaltoodud programm värskendab tabeli töötajat. See asendab nime Sam nimega Aditya kus see tabelis ilmub. Programmi väljundi kohta vaadake allolevat pilti.

Järeldus

See on meie põhjalik juhend SQLite andmebaasiga seotud põhitööde sooritamiseks Pythoni abil. Eelseisvas õpetuses näeme veel mõningaid täpsemaid kasutusviise, mis peaksid viima teid Pythoni SQLite andmebaasi õppimise järgmisele tasemele. Jälgige FOSSLinuxi.

Kuidas FPS-i suurendada Linuxis?
FPS tähistab Kaadrit sekundis. FPS-i ülesanne on mõõta kaadrisagedust video taasesitamisel või mängude esitamisel. Lihtsamalt öeldes nimetatakse iga s...
Parimad Oculus App Lab mängud
Kui olete Oculuse peakomplekti omanik, peate olema teadlik külglaadimisest. Kõrvalaadimine on protsess, millega installitakse peakomplekti mitte-poesi...
10 parimat mängu, mida Ubuntu kaudu mängida
Windowsi platvorm on olnud üks mängude domineerivaid platvorme, kuna tohutu protsent mänge areneb täna Windowsi loomupäraseks toetamiseks. Kas keegi s...