Programiranje

Osnove dela z bazo podatkov SQLite v Pythonu

Osnove dela z bazo podatkov SQLite v Pythonu

Baza podatkov je ena najbolj uporabnih in priljubljenih datotek za shranjevanje podatkov; lahko se uporabljajo za shranjevanje kakršnih koli podatkov, vključno z besedilom, številkami, slikami, binarnimi podatki, datotekami itd. SQLite je sistem za upravljanje relacijske baze podatkov, ki temelji na jeziku SQL. Je knjižnica C in ponuja API za delo z drugimi programskimi jeziki, vključno s Pythonom. Ne zahteva ločenega strežniškega procesa, ki bi ga bilo treba zagnati v velikih motorjih baz podatkov, kot sta MySQL in Postgresql.

Je hitra in lahka, celotna baza podatkov pa je shranjena v eni diskovni datoteki, zaradi česar je prenosljiva, kot je CSV ali druge datoteke za shranjevanje podatkov. Številne aplikacije uporabljajo SQLite za notranje shranjevanje podatkov, predvsem v okoljih, kot so mobilne naprave ali majhne aplikacije.

Baza podatkov SQLite za Python

Poglobimo se v SQLite s programskim jezikom python. V tej vadnici bomo spoznali prednosti uporabe SQLite, osnove modula python sqlite3, ustvarjanje tabele v zbirki podatkov, vstavljanje podatkov v tabelo, poizvedovanje po podatkih iz tabele in posodabljanje podatkov v tabeli.

Prednosti uporabe SQLite

Glavne prednosti uporabe SQLite so:

SQLite se v Google Chromu uporablja tudi za shranjevanje piškotkov, uporabniških podatkov in drugih pomembnih podatkov, vključno z uporabniškimi gesli. Android OS prav tako uporablja SQLite kot svoj primarni mehanizem zbirke podatkov za shranjevanje podatkov.

Modul Python SQLite3

Za uporabo SQLite potrebujemo Python, ki je nameščen v našem sistemu. Če v vašem sistemu še ni nameščen Python, si lahko ogledate naš vodnik po korakih za namestitev Pythona v Linux. SQLite v Pythonu bi lahko uporabili z uporabo sqlite3 modul na voljo v standardni Pythonovi knjižnici. Gerhard Häring je napisal modul sqlite3; ponuja vmesnik SQL, skladen z DB-API 2.0. Prednameščen je s standardno knjižnico Python, zato nam ni treba skrbeti za nadaljnjo namestitev.

Ustvarjanje povezave z bazo podatkov

Prvi korak med delom z SQLite v Pythonu je vzpostavitev povezave z bazo podatkov. To lahko storimo z uporabo metode connect () sqlite3 za nastavitev povezave. Za primer si oglejte naslednjo kodo. Kodo lahko preprosto kopirate v IDE ali urejevalnik besedil in jo zaženete. Če imate težave z izbiro IDE za Python, si lahko ogledate naš vodnik za primerjavo najboljšega python IDE. Priporočljivo je, da kodo znova prepišete v IDE, in če želite kopirati kodo, preverite skladnjo s kodo, ki je tukaj.

# uvoz potrebnih modulov import sqlite3 # nastavitev povezave z bazo podatkov conn = sqlite3.poveži ("vzorec.db ") print (" Uspešno povezan z bazo podatkov ") # zapiranje povezave.zapri ()

Zgornji program bo ustvaril povezavo z datoteko baze podatkov SQLite »vzorec.db.”V terminalu bo dal naslednji izhod.

Poglejmo, kaj se dogaja v zgornji kodi. V prvi vrstici smo uvozili modul sqlite3, ki nam bo pomagal pri delu z bazami podatkov SQLite v Pythonu.

V drugi vrstici ustvarimo povezavo z datoteko baze podatkov SQLite z imenom »sample.db "z uporabo povezati () funkcijo. Funkcija connect () sprejme pot do datoteke baze podatkov kot argument. Če datoteka ne obstaja na dani poti, bo sama ustvarila novo datoteko baze podatkov z danim imenom na tej poti. Funkcija connect () bo vrnila objekt baze podatkov v našem programu; vrnjeni objekt shranimo v spremenljivko z imenom povez.

Tretja vrstica v našem programu je preprosta natisni izjava za prikaz sporočila o uspešni povezavi. Zadnja vrstica programa prekine povezavo z bazo podatkov s pomočjo zapri () funkcija predmeta povezave.

V prejšnjem primeru smo bazo podatkov ustvarili na disk, lahko pa jo tudi v primarni pomnilniški RAM. Če ustvarite bazo podatkov v RAM-u, je izvajanje baze podatkov hitrejše kot običajno. Kljub temu bo baza podatkov ustvarjena začasno in ko se izvajanje programa ustavi, jo bo izbrisala iz pomnilnika. Zbirko podatkov v pomnilniku lahko ustvarimo tako, da določimo ime: memory: kot argument za povezati () funkcijo. Za ponazoritev glejte spodnji program.

uvozi sqlite3 conn = sqlite3.connect (": memory:") print ("\ n [+] Baza podatkov je bila uspešno ustvarjena v pomnilniku") conn.zapri ()

Zgornji program bo ustvaril bazo podatkov v RAM-u in jo lahko uporabimo za izvajanje skoraj vseh nalog, ki jih lahko naredimo z zbirkami podatkov, ustvarjenimi na disku. Ta metoda je iz nekega razloga uporabna pri ustvarjanju začasne navidezne baze podatkov.

Kazalec SQLite3

Akazalec objekt je naš vmesnik do baze podatkov, ki omogoča zagon katerega koliPoizvedba SQL v zbirki podatkov. Za izvajanje katerega koli skripta SQL s pomočjo sqlite3 moramo ustvariti predmet kazalke. Če želite ustvariti predmet kazalke, moramo uporabiti kazalec () metoda povezavo predmet. Z naslednjo kodo lahko ustvarimo predmet kazalke naše zbirke podatkov.

# uvoz potrebnih modulov import sqlite3 # nastavitev povezave z bazo podatkov conn = sqlite3.poveži ("vzorec.db ") print (" \ n [+] Uspešno povezan z bazo podatkov ") cur = conn.kurzor () print ("\ n [+] Kazalec je bil uspešno nastavljen").close () # zapiranje povezave.zapri ()

Ko se program zažene, bo rezultat prikazan, kot je prikazano na spodnji sliki.

Poglejmo, kako deluje zgornja koda. V zgornji kodi prva, druga, tretja vzpostavlja povezavo z bazo podatkov, kot je prikazano prej. V četrti vrstici smo uporabili kazalec () metoda predmeta povezave za ustvarjanje predmeta kazalke in shranjevanje vrnjenega predmeta kazalca v spremenljivko z imenom "cur". Peta vrstica je splošno natisni () izjavo. V šesti vrstici smo ukaz predmeta kurzorja uničili iz pomnilnika z uporabo zapri () metoda kazalca.

Vrste podatkov SQLite

Preden nadaljujemo, najprej razumemo tipe podatkov SQLite. Mehanizem zbirke podatkov SQLite ima več razredov pomnilnika za shranjevanje številnih vrst podatkov, vključno z besedilom, binarnimi podatki, celoštevilom itd. Vsaka vrednost ima enega od naslednjih podatkovnih tipov.

Vrste podatkov SQLite:

Primerjava podatkovnih tipov SQLite in Python

Velikokrat bomo morali uporabiti vrste podatkov python za shranjevanje nekaterih podatkov SQL in izvajanje nekaterih dejavnosti. Za kaj takega moramo vedeti, kateri tipi podatkov SQL se nanašajo na katere vrste podatkov python.

Naslednji tipi Pythona so nekoliko podobni podatkovnim vrstam SQLite:

Python tip Tip SQLite
Nobenega NIČ
int INTEGER
plovec REALNO
str BESEDILO
bajtov BLOB

Ustvarjanje tabele z uporabo SQLite

Če želite ustvariti tabelo s pomočjo SQLite, moramo uporabiti USTVARI TABELO izjava SQL v izvrši () metoda kazalca. Osnovna sintaksa stavka CREATE TABLE v SQL je prikazana spodaj:

USTVARI TABELO ime_tabele (ime_ stolpca Omejitev vrste_tip, ... ime-stolpca Omejitev vrste_tip);

Če želite uporabiti zgornji stavek SQLite v Pythonu, moramo zagnati spodnji primer programa. V naši bazi podatkov bo ustvaril tabelo z imenom zaposleni.

uvozi sqlite3 conn = sqlite3.poveži ("vzorec.db ") print (" \ n [+] Uspešno povezan z bazo podatkov ") cur = conn.cursor () print ("\ n [+] Kazalec je bil uspešno nastavljen") tabela = cur.execute ("" "USTVARI TABELO zaposlenega (id INT PRIMARNI KLJUČ, ime CHAR (25), plača CHAR (25), datum pridružitve DATUM);" "") print ("\ n [+] Tabela je bila uspešno ustvarjena") cur.close () conn.zapri ()

V zgornjem programu smo ustvarili zaposleni tabela z atributi id, ime, plača, in pridružilni_datum. Ta tabela se lahko zdaj uporablja za shranjevanje podatkov ali poizvedovanje po podatkih. V terminalu boste videli naslednji izhod.

V zgornji kodi smo uporabili izvrši () metoda kazalca za zagon ukaza SQL za ustvarjanje tabele z danimi stolpci.

Vstavljanje podatkov v tabelo

V naši bazi podatkov SQLite smo ustvarili tabelo. Zdaj pa vanj vstavimo nekaj podatkov s pomočjo SQL. Osnovna sintaksa stavka INSERT SQL je:

INSERT INTO ime_tabele (stolpci_ime_1, stolpci_ime_2, ...) VREDNOSTI (stolpci_data_1, stolpci_data_1, ...)

V zgornji sintaksi je ime_tabele je ime tabele, v katero želimo vstaviti svoje podatke. The ime_ stolpca_1, ime_ stolpca_2,.. so imena stolpcev v tabeli. The stolpec_podatki_1, column_data_2,… so podatki, ki jih želimo vstaviti v dane stolpce.

Oglejmo si praktičen demo za vstavljanje podatkov v tabelo. V našo imenovano tabelo bomo dodali nekaj podatkov zaposleni z uporabo SQLite in Python. Zaženite spodnjo kodo, da v tabelo vstavite nekaj podatkov.

uvozi sqlite3 conn = sqlite3.poveži ("vzorec.db ") print (" \ n [+] Uspešno povezan z bazo podatkov ") cur = conn.cursor () print ("\ n [+] Kazalec je bil uspešno nastavljen").execute ("INSERT INTO worker (id, name, pay, joining_date) VALUES (1001, 'David', 50000, '1-08-2019')") cur.execute ("INSERT INTO worker (id, name, pay, joining_date) VALUES (1002, 'Sam', 80000, '3-09-2020')") cur.izvrši ("INSERT INTO zaposlenega (id, ime, plača, datum pridružitve) VREDNOTE (1003, 'Roshan', 90000, '8-08-2020')") cur.execute ("INSERT INTO worker (id, name, pay, joining_date) VALUES (1004, 'Kishan', 100000, '9-09-2020')") cur.execute ("INSERT INTO worker (id, name, pay, joining_date) VALUES (1005, 'Ankit', 111000, '10 -05-2019 ')") print ("\ n [+] Podatki so bili uspešno vstavljeni" ) cur.close () conn.commit () conn.zapri ()

Zgornja koda bo v datoteko vstavila nekaj podatkov zaposleni tabelo, ki smo jo ustvarili prej. Poglejmo, kaj se dogaja v kodi. Prvih pet vrstic se uporablja za vzpostavitev povezave z bazo podatkov in nastavitev kazalca. V vrsticah od šest do deset moramo z ukazom INSERT SQL vstaviti podatke v tabelo zaposlenih. V prvem oklepaju moramo uporabiti ime stolpcev tabele zaposlenih in podatke za stolpce v drugem oklepaju. Samo uporabiti moramo zaveži () metode povezavnega objekta pred prekinitvijo povezave z bazo podatkov, sicer spremembe, ki smo jih naredili, ne bodo shranjene v bazo podatkov.

Poizvedovanje po podatkih iz tabele

Naučili smo se, kako vstaviti podatke v bazo podatkov SQLite, vendar moramo poizvesti tudi podatke iz baze podatkov, ki jih bo uporabil naš program ali uporabniki. Za poizvedbo po podatkih lahko uporabimo stavek SELECT SQL-ja po metodi execute (). Osnovna sintaksa stavka SELECT je prikazana spodaj.

IZBERI imena_ stolpcev IZ ime_tabele

The imena_ stolpcev v sintaksi bo ime stolpcev, ki jih moramo poizvedovati. Ti stolpci morajo biti prisotni v tabeli, katere ime je namesto ime_tabele. Zdaj pa poglejmo, kako bi lahko to sintakso uporabili za iskanje podatkov iz tabele zaposlenih. Preprosto zaženite naslednjo kodo, da si ogledate ponazoritev.

uvozi sqlite3 conn = sqlite3.poveži ("vzorec.db ") print (" \ n [+] Uspešno povezan z bazo podatkov ") cur = conn.kurzor () print ("\ n [+] Kazalec je bil uspešno nastavljen").Izvedba ("IZBERI id, ime OD zaposlenega") tabela = cur.fetchall () za i v tabeli: print (i) cur.close () conn.commit () conn.zapri ()

Izhodni podatki zgornjega programa so prikazani spodaj.

Zgornji program bo poizvedel po tabeli zaposlenih po stolpcih id in ime. Podatke, ki smo jih vrnili, lahko zbiramo z uporabo prinesi () metoda kazalca. Vrnjeni podatki so seznam python, ki vsebuje vrstice, ki smo jih poizvedovali. Za prikaz posameznih vrstic moramo s pomočjo zanke Python for iterirati po seznamu; več o zanki Python for lahko preberete tukaj. Zdaj pa si oglejmo nekaj koristnih stvari, ki jih lahko izvedemo s stavkom SELECT.

Pridobi vse podatke iz tabele

Včasih je treba vse zapise pridobiti iz tabele zbirke podatkov. Da dobimo vse zapise z uporabo stavka SELECT SQL-a, moramo upoštevati spodnjo osnovno sintakso:

SELECT * FROM ime_tabele

The * simbol bo uporabljen za označevanje vseh stolpcev in s tem lahko poizvedujemo po vseh stolpcih tabele SQLite. Če želite pridobiti vse zapise iz uslužbenca tabele, ki smo ga ustvarili prej, moramo zagnati naslednjo kodo.

uvozi sqlite3 conn = sqlite3.poveži ("vzorec.db ") print (" \ n [+] Uspešno povezan z bazo podatkov ") cur = conn.kurzor () print ("\ n [+] Kazalec je bil uspešno nastavljen").izvrši ("SELECT * FROM worker") vrstice = cur.fetchall () print ("\ n [+] Poizvedovanje po podatkih \ n") za i v vrsticah: print (i) cur.close () conn.commit () conn.zapri ()

Zgornja koda bo prikazala vse zapise v tabeli zaposlenih, ki smo jih ustvarili prej. Rezultat programa bo približno tak:

Poizvedba podatkov v določenem vrstnem redu

Včasih moramo podatke iz tabele povprašati v določenem vrstnem redu, kot je Naraščajoče ali Padajoče. Za prikaz podatkov po vrstnem redu lahko uporabimo stavek SELECT s ključno besedo ORDER BY. Osnovna sintaksa ključne besede ORDER BY v stavku SELECT je:

IZBERI ime_ stolpcev IZ ime_tabele NAROČI PO ime_ stolpcev

Poglejmo, kako lahko s ključno besedo ORDER BY prikažemo podatke iz vrstnega reda tabel zaposlenih po imenu.

uvozi sqlite3 conn = sqlite3.poveži ("vzorec.db ") print (" \ n [+] Uspešno povezan z bazo podatkov ") cur = conn.kurzor () print ("\ n [+] Kazalec je bil uspešno nastavljen").Izvedba ("IZBERI * IZ NAROČILA PO IMENU zaposlenega") tabela = cur.fetchall () za i v tabeli: print (i) cur.close () conn.commit () conn.zapri ()

Morda boste videli izhod zgornje kode, kot je prikazano spodaj.

V izhodu lahko opazite, da so bili podatki prikazani v naraščajočem vrstnem redu stolpca ime.

Posodabljanje zapisov v tabeli

Veliko je situacij, ko želimo posodobiti tabelo svojih zbirk podatkov. Če na primer uporabljamo bazo podatkov za šolsko aplikacijo, bomo morali podatke posodobiti, če se učenec premesti v novo mesto. Vrsto katere koli tabele naše zbirke podatkov lahko hitro posodobimo s pomočjo NADGRADNJA stavek SQL v metodi execute (). Kot pogoj za izbiro zaposlenega bomo morali uporabiti stavek WHERE v SQL. Osnovna sintaksa NADGRADNJA izjava je prikazana spodaj.

UPDATE ime_tabele SET posodobitev_zahtevano WHERE Nekateri_pogoj

Glejte spodnji primer kot ponazoritev stavka UPDATE.

uvozi sqlite3 conn = sqlite3.poveži ("vzorec.db ") print (" \ n [+] Uspešno povezan z bazo podatkov ") cur = conn.cursor () print ("\ n [+] Kazalec je bil uspešno nastavljen") print ("\ n [+] Podatki pred posodobitvijo \ n") cur.izvršiti ("SELECT * FROM uslužbenec") pred = cur.fetchall () za i v pred: print (i) cur.izvrši ("UPDATE SET SET name = 'Aditya' where name = 'Sam'") print ("\ n [+] Podatki po posodobitvi \ n") cur.izvršiti ("SELECT * FROM uslužbenec") po = cur.fetchall () za i v po: print (i) cur.close () conn.commit () conn.zapri ()

Zgornji program bo posodobil tabelo zaposlenega. Nadomešča ime Sam z imenom Aditya kjer koli se pojavi v tabeli. Za rezultat programa glejte spodnjo sliko.

Zaključek

To je naš obsežen vodnik za izvajanje nekaterih osnovnih nalog, povezanih z bazo podatkov SQLite, s pomočjo Pythona. V prihajajoči vadnici bomo videli še nekaj naprednih načinov uporabe, ki bi vas morali popeljati na naslednjo stopnjo učenja baze podatkov SQLite za Python. Spremljajte FOSSLinux.

Kako razviti igro na Linuxu
Pred desetletjem le malo uporabnikov Linuxa napoveduje, da bo njihov najljubši operacijski sistem nekoč priljubljena igralna platforma za komercialne ...
Odprtokodna vrata komercialnih igralnih sistemov
Brezplačne, odprtokodne in medplatformacijske igre, ki jih lahko uporabite za igranje starih, pa tudi nekaterih dokaj nedavnih naslovov iger. V tem čl...
Najboljše igre ukazne vrstice za Linux
Ukazna vrstica ni le vaš največji zaveznik pri uporabi Linuxa - lahko je tudi vir zabave, saj jo lahko uporabljate za igranje številnih zabavnih iger,...