Programiranje

Osnove rada s bazom podataka SQLite u Pythonu

Osnove rada s bazom podataka SQLite u Pythonu

Baza podataka jedna je od najkorisnijih i najpopularnijih datoteka za pohranu podataka; mogu se koristiti za pohranu bilo koje vrste podataka, uključujući tekst, brojeve, slike, binarne podatke, datoteke itd. SQLite je relacijski sustav upravljanja bazama podataka zasnovan na SQL jeziku. To je C knjižnica i pruža API za rad s drugim programskim jezicima, uključujući Python. Ne zahtijeva pokretanje odvojenog poslužiteljskog procesa po potrebi u velikim mehanizmima baza podataka kao što su MySQL i Postgresql.

Brza je i lagana, a cijela baza podataka pohranjena je u jednu datoteku diska, što je čini prijenosnom poput CSV-a ili drugih datoteka za pohranu podataka. Mnoge aplikacije koriste SQLite za internu pohranu podataka, uglavnom u okruženjima poput mobilnih uređaja ili malih aplikacija.

SQLite baza podataka za Python

Zaronimo duboko u SQLite s programskim jezikom python. U ovom uputstvu naučit ćemo prednosti korištenja SQLite-a, osnove python sqlite3 modula, stvaranje tablice u bazi podataka, umetanje podataka u tablicu, postavljanje upita iz tablice i ažuriranje podataka tablice.

Prednosti korištenja SQLitea

Glavne prednosti upotrebe SQLitea su:

SQLite se također koristi u Google Chromeu za pohranu kolačića, korisničkih podataka i ostalih važnih podataka, uključujući korisničke lozinke. Android OS također koristi SQLite kao svoj primarni mehanizam baze podataka za pohranu podataka.

Python SQLite3 modul

Da bismo koristili SQLite, potreban nam je Python koji mora biti instaliran u naš sustav. Ako Python već nije instaliran u vašem sustavu, možete se upoznati s našim vodičem korak po korak za instaliranje Pythona u Linux. Mogli bismo koristiti SQLite u Pythonu koristeći sqlite3 modul dostupan u Pythonovoj standardnoj knjižnici. Gerhard Häring napisao je sqlite3 modul; pruža SQL sučelje sukladno DB-API 2.0. Dolazi s predinstaliranom standardnom knjižnicom Python, tako da ne trebamo brinuti o daljnjoj instalaciji.

Stvaranje veze s bazom podataka

Prvi korak tijekom rada s SQLiteom u Pythonu je postavljanje veze s bazom podataka. To možemo učiniti pomoću metode connect () sqlite3 za postavljanje veze. Primjer pogledajte sljedeći kod. Možete jednostavno kopirati kôd u IDE ili uređivač teksta i izvršiti ga. Ako imate problema s odabirom IDE-a za Python, možete se obratiti našem vodiču za usporedbu najboljeg python IDE-a. Preporučuje se ponovno prepisivanje koda u vaš IDE, a ako želite kopirati kôd, provjerite sintaksu ovdje prisutnim kodom.

# uvoz potrebnih modula import sqlite3 # postavljanje veze s bazom podataka conn = sqlite3.povezati ("uzorak.db ") print (" Uspješno povezano s bazom podataka ") # zatvaranje veze povez.Zatvoriti()

Gornji program stvorit će vezu s datotekom baze podataka SQLite „uzorak.db."To će dati sljedeći izlaz u terminalu.

Pogledajmo što se događa u gornjem kodu. U prvi smo red uvezli sqlite3 modul koji će nam pomoći u radu s SQLite bazama podataka u Pythonu.

U drugom retku stvaramo vezu s datotekom baze podataka SQLite pod nazivom „sample.db "pomoću Spojiti() funkcija. Funkcija connect () prihvaća put do datoteke baze podataka kao argument. Ako datoteka ne postoji u zadanom putu, tada će sama stvoriti novu datoteku baze podataka s danim imenom u toj stazi. Funkcija connect () vratit će objekt baze podataka u našem programu; vraćeni objekt pohranjujemo u varijablu s imenom spoj.

Treći redak u našem programu je jednostavan ispis izjava za prikaz poruke o uspješnoj vezi. Posljednji redak programa prekida vezu s bazom podataka pomoću Zatvoriti() funkcija objekta veze.

U prethodnom smo primjeru stvorili bazu podataka na disku, ali također možemo stvoriti bazu podataka u primarnoj RAM memoriji. Stvaranje baze podataka u RAM-u čini izvršavanje baze podataka bržim nego obično. Ipak, baza podataka stvorit će se privremeno, a kako se izvršavanje programa zaustavi, izbrisat će je iz memorije. Bazu podataka u memoriji možemo stvoriti davanjem određenog imena: memory: kao argument za Spojiti() funkcija. Pogledajte donji program kao ilustraciju.

uvoz sqlite3 conn = sqlite3.connect (": memory:") print ("\ n [+] Baza podataka uspješno je stvorena u memoriji") conn.Zatvoriti()

Gornji program stvorit će bazu podataka u RAM-u i možemo je koristiti za obavljanje gotovo svih zadataka koje možemo napraviti s bazama podataka stvorenim na disku. Ova je metoda korisna tijekom stvaranja privremene virtualne baze podataka iz nekog razloga.

Kursor SQLite3

Akursor objekt je naše sučelje s bazom podataka, koje omogućuje pokretanje bilo kojegSQL upit na bazi podataka. Da bismo izvršili bilo koje SQL skripte pomoću sqlite3, moramo stvoriti objekt kursora. Da bismo stvorili objekt kursora, trebamo upotrijebiti pokazivač () metoda povezanost objekt. Objekt kursora naše baze podataka možemo stvoriti pomoću sljedećeg koda.

# uvoz potrebnih modula import sqlite3 # postavljanje veze s bazom podataka conn = sqlite3.povezati ("uzorak.db ") print (" \ n [+] Uspješno povezan s bazom podataka ") cur = conn.cursor () print ("\ n [+] Pokazivač je uspješno postavljen") cur.close () # zatvaranje veze conn.Zatvoriti()

Kada se program izvrši, izlaz će se vidjeti kako je prikazano na donjoj slici.

Pogledajmo kako funkcionira gornji kod. U gornjem kodu prva, druga, treća uspostavlja vezu s bazom podataka, kao što je ranije prikazano. U četvrtom smo retku koristili pokazivač () metoda objekta povezivanja za stvaranje objekta pokazivača i spremanje vraćenog predmeta pokazivača u varijablu nazvanu "cur". Peti redak je općenito ispis () izjava. U šestom smo retku uništili objekt kursora iz memorije pomoću Zatvoriti() metoda kursora.

Tipovi podataka SQLite

Prije nastavka dalje, shvatimo prvo SQLite tipove podataka. Stroj baze podataka SQLite ima nekoliko klasa za pohranu za pohranu mnogih vrsta podataka, uključujući tekst, binarne podatke, Integer itd. Svaka vrijednost ima jedan od sljedećih tipova podataka.

SQLite tipovi podataka:

Usporedba tipova podataka SQLite i Python

Puno puta trebamo koristiti python tipove podataka za pohranu nekih SQL podataka i obavljanje nekih aktivnosti. Da bismo takvo što učinili, moramo znati koji se SQL tipovi podataka odnose na koje python tipove podataka.

Sljedeći tipovi Pythona donekle su slični tipovima podataka SQLite:

Python tip SQLite tip
Nijedna NULL
int CIJELI
plutati STVARAN
str TEKST
bajtova BLOB

Stvaranje tablice pomoću SQLitea

Da bismo stvorili tablicu koristeći SQLite, trebamo koristiti IZRADI TABELU izjava SQL-a u izvršiti() metoda kursora. Osnovna sintaksa izraza CREATE TABLE u SQL-u prikazana je u nastavku:

CREATE TABLE ime_tablice (ime_stupaca Ograničenje tipa_datoteka, ... Ime_stupaca Ograničenje tipa_datoteke);

Da bismo koristili gornju izjavu SQLite u Pythonu, moramo pokrenuti donji primjer programa. Stvorit će tablicu s imenom zaposlenik u našoj bazi podataka.

uvoz sqlite3 conn = sqlite3.povezati ("uzorak.db ") print (" \ n [+] Uspješno povezan s bazom podataka ") cur = conn.cursor () print ("\ n [+] Pokazivač je uspješno postavljen") tablica = cur.execute ("" "STVORI TABELU zaposlenika (id INT PRIMARNI KLJUČ, ime CHAR (25), plaća CHAR (25), datum pridruživanja DATUM);" "") print ("\ n [+] Tablica je uspješno kreirana") cur.close () conn.Zatvoriti()

U gore navedenom programu stvorili smo zaposlenik tablica s atributima iskaznica, ime, plata, i Datum pridruženja. Ova se tablica sada može koristiti za pohranu podataka ili postavljanje upita prema zahtjevima. U terminalu ćete vidjeti sljedeći izlaz.

U gornjem kodu koristili smo izvršiti() metoda kursora za pokretanje SQL naredbe za stvaranje tablice s danim stupcima.

Umetanje podataka u tablicu

Stvorili smo tablicu u našoj bazi podataka SQLite. Sad u njega ubacimo neke podatke pomoću SQL-a. Osnovna sintaksa INSERT izraza SQL-a je:

INSERT INTO ime_tabele (stupci_ime_1, stupci_ime_2, ...) VRIJEDNOSTI (stupci_data_1, stupci_data_1, ...)

U gornjoj sintaksi, ime_tablice naziv je tablice u koju želimo umetnuti svoje podatke. The stupac_ime_1, stupac_ime_2,.. naziv su stupaca prisutnih u tablici. The stupci_podaci_1, stupci_data_2,… su podaci koje želimo umetnuti u zadane stupce.

Pogledajmo praktični demo za umetanje podataka u tablicu. U našu ćemo tablicu s imenom dodati neke podatke zaposlenik koristeći SQLite i Python. Pokrenite donji kod da biste u tablicu umetnuli neke podatke.

uvoz sqlite3 conn = sqlite3.povezati ("uzorak.db ") print (" \ n [+] Uspješno povezan s bazom podataka ") cur = conn.cursor () print ("\ n [+] Pokazivač je uspješno postavljen") cur.execute ("INSERT INTO zaposlenika (id, ime, plaća, pridruženi_datum) VRIJEDNOSTI (1001, 'David', 50000, '1-08-2019')") cur.execute ("INSERT INTO zaposlenika (id, ime, plaća, pridruženi_datum) VRIJEDNOSTI (1002, 'Sam', 80000, '3-09-2020')") cur.execute ("INSERT INTO zaposlenika (id, ime, plaća, pridruženi_datum) VRIJEDNOSTI (1003, 'Roshan', 90000, '8-08-2020')") cur.execute ("INSERT INTO zaposlenika (id, ime, plaća, pridruženi_datum) VRIJEDNOSTI (1004, 'Kishan', 100000, '9-09-2020')") cur.execute ("INSERT INTO zaposlenika (id, ime, plaća, datum pridruživanja) VRIJEDNOSTI (1005, 'Ankit', 111000, '10 -05-2019 ')") print ("\ n [+] Podaci su uspješno umetnuti" ) cur.close () conn.commit () conn.Zatvoriti()

Gornji će kôd umetnuti neke podatke u zaposlenik tablicu koju smo stvorili ranije. Pogledajmo što se događa u kodu. Prvih pet redaka koristi se za stvaranje veze s bazom podataka i postavljanje kursora. U redovima od šest do deset moramo upotrijebiti naredbu INSERT SQL-a za umetanje podataka u tablicu zaposlenika. Moramo koristiti naziv stupca tablice zaposlenika u prvoj zagradi i podatke za stupce u drugoj zagradi. Samo trebamo koristiti počiniti() metoda objekta povezivanja prije prekida veze s bazom podataka, inače promjene koje smo napravili neće biti spremljene u bazu podataka.

Upit podataka iz tablice

Naučili smo kako umetnuti podatke u SQLite bazu podataka, ali također moramo tražiti podatke iz baze podataka kako bi ih koristili naš program ili korisnici. Za upit podataka možemo koristiti naredbu SELECT SQL-a pod metodom execute (). Osnovna sintaksa naredbe SELECT prikazana je u nastavku.

ODABERI imena_ stupaca IZName_tabele

The stupci_nazivi u sintaksi će biti naziv stupaca koje moramo upitati. Ovi stupci moraju biti prisutni u tablici čije je ime dano umjesto ime_tablice. Sada da vidimo kako bismo mogli koristiti ovu sintaksu za traženje podataka iz tablice naših zaposlenika. Samo pokrenite sljedeći kod da biste vidjeli ilustraciju.

uvoz sqlite3 conn = sqlite3.povezati ("uzorak.db ") print (" \ n [+] Uspješno povezan s bazom podataka ") cur = conn.cursor () print ("\ n [+] Pokazivač je uspješno postavljen") cur.izvršiti ("ODABERI id, ime OD zaposlenika") tablica = cur.fetchall () za i u tablici: print (i) cur.close () conn.commit () conn.Zatvoriti()

Izlaz koji pruža gornji program prikazan je u nastavku.

Gornji program tražit će tablicu zaposlenika za stupce iskaznica i Ime. Podatke koji su vraćeni možemo prikupiti pomoću dohvatiti () metoda kursora. Vraćeni podaci su python popis koji sadrži retke koje smo upitali. Da bismo prikazali pojedinačne retke, moramo koristiti petlju Python for za iteraciju po popisu; više o petlji Python for možete pročitati ovdje. Pogledajmo sada neke korisne stvari koje možemo izvršiti s naredbom SELECT.

Dohvati sve podatke iz tablice

Ponekad postoji potreba za dohvaćanjem svih zapisa iz tablice baze podataka. Da bismo dobili sve zapise pomoću SELECT naredbe SQL-a, moramo slijediti osnovnu sintaksu navedenu u nastavku:

ODABERITE * IZ ime_tablice

The * simbol će se koristiti za označavanje svih stupaca, a pomoću njega možemo postaviti upit svim stupcima tablice SQLite. Da bismo dohvatili sve zapise iz zaposlenika tablice koji smo ranije stvorili, moramo pokrenuti sljedeći kod.

uvoz sqlite3 conn = sqlite3.povezati ("uzorak.db ") print (" \ n [+] Uspješno povezan s bazom podataka ") cur = conn.cursor () print ("\ n [+] Pokazivač je uspješno postavljen") cur.izvrši ("SELECT * FROM zaposlenik") redovi = cur.fetchall () print ("\ n [+] Upit podataka \ n") za i u redovima: print (i) cur.close () conn.commit () conn.Zatvoriti()

Gornji kod prikazat će sve zapise prisutne u tablici zaposlenika koju smo ranije kreirali. Rezultat programa bit će otprilike ovako:

Upit podataka u određenom redoslijedu

Ponekad trebamo tražiti podatke iz tablice u određenom redoslijedu poput Uzlazno ili Silazno. Izraz SELECT možemo koristiti s ključnom riječi ORDER BY za prikaz redoslijeda podataka. Osnovna sintaksa ključne riječi ORDER BY u naredbi SELECT je:

ODABERITE ime_stupaca IZName ime_tablice

Pogledajmo kako možemo koristiti ključnu riječ ORDER BY za prikaz podataka iz redoslijeda tablica zaposlenika po imenu.

uvoz sqlite3 conn = sqlite3.povezati ("uzorak.db ") print (" \ n [+] Uspješno povezan s bazom podataka ") cur = conn.cursor () print ("\ n [+] Pokazivač je uspješno postavljen") cur.izvršiti ("SELECT * FROM zaposlenika ORDER BY name") tablica = cur.fetchall () za i u tablici: print (i) cur.close () conn.commit () conn.Zatvoriti()

Možda ćete vidjeti izlaz gornjeg koda, kao što je prikazano u nastavku.

U izlazu ćete primijetiti da su podaci prikazani uzlaznim redoslijedom stupca Ime.

Ažuriranje zapisa u tablici

Mnogo je situacija kada želimo ažurirati tablicu svojih baza podataka. Na primjer, ako bazu podataka koristimo za školsku prijavu, trebat ćemo ažurirati podatke ako se učenik prebaci u novi grad. Pomoću datoteke .mogu brzo ažurirati red bilo koje tablice naše baze podataka AŽURIRANJE izjava SQL-a u izvršnoj () metodi. Trebat ćemo koristiti WHERE klauzulu SQL-a kao uvjet za odabir zaposlenika. Osnovna sintaksa AŽURIRANJE Izjava je prikazana u nastavku.

AŽURIRANJE ime_tabele SET ažuriranje_obvezno WHERE Neki_uvjet

Pogledajte donji primjer kao ilustraciju UPDATE izraza.

uvoz sqlite3 conn = sqlite3.povezati ("uzorak.db ") print (" \ n [+] Uspješno povezan s bazom podataka ") cur = conn.cursor () print ("\ n [+] Pokazivač je uspješno postavljen") print ("\ n [+] Podaci prije ažuriranja \ n") cur.izvršiti ("SELECT * FROM zaposlenik") prije = cur.fetchall () za i in prije: print (i) cur.izvrši ("AŽURIRAJ SET zaposlenika SET name = 'Aditya' gdje je ime = 'Sam'") ispiši ("\ n [+] Podaci nakon ažuriranja \ n") cur.izvrši ("SELECT * FROM zaposlenik") nakon = cur.fetchall () za i in nakon: print (i) cur.close () conn.commit () conn.Zatvoriti()

Gornji program će ažurirati zaposlenika stola. Zamjenjuje ime Sam s imenom Aditya gdje god se pojavi u tablici. Pogledajte donju sliku za izlaz programa.

Zaključak

To je naš opsežni vodič za izvođenje nekih osnovnih zadataka povezanih s SQLite bazom podataka pomoću Pythona. U nadolazećem uputstvu vidjet ćemo nekoliko naprednijih upotreba koje bi vas trebale odvesti na sljedeću razinu učenja SQLite baze podataka za Python. Pratite FOSSLinux.

How to Change Mouse and Touchpad Settings Using Xinput in Linux
Most Linux distributions ship with “libinput” library by default to handle input events on a system. It can process input events on both Wayland and X...
Zamijenite svoje tipke miša različito za različiti softver pomoću X-Mouse Button Control
Možda vam treba alat koji bi mogao promijeniti kontrolu miša sa svakom aplikacijom koju koristite. Ako je to slučaj, možete isprobati aplikaciju pod n...
Microsoft Sculpt Touch bežični miš pregled
Nedavno sam čitao o Microsoft Sculpt Touch bežični miš i odlučio ga kupiti. Nakon što sam ga neko vrijeme koristio, odlučio sam s njim podijeliti svoj...