Programovanie

Základy práce s databázou SQLite v Pythone

Základy práce s databázou SQLite v Pythone

Databáza je jedným z najužitočnejších a najpopulárnejších súborov na ukladanie údajov; môžu byť použité na ukladanie akýchkoľvek druhov údajov vrátane textu, čísel, obrázkov, binárnych údajov, súborov atď. SQLite je systém správy relačných databáz založený na jazyku SQL. Je to knižnica C a poskytuje API na prácu s inými programovacími jazykmi vrátane Pythonu. Nevyžaduje, aby bol podľa potreby spustený samostatný serverový proces vo veľkých databázových strojoch, ako sú MySQL a Postgresql.

Je rýchly a ľahký a celá databáza je uložená v jednom súbore disku, vďaka čomu je prenosná ako CSV alebo iné súbory na ukladanie údajov. Mnoho aplikácií používa SQLite na interné ukladanie údajov, hlavne v prostrediach, ako sú mobilné zariadenia alebo malé aplikácie.

Databáza SQLite pre Python

Poďme sa hlboko ponoriť do SQLite pomocou programovacieho jazyka python. V tomto tutoriále sa dozvieme výhody používania SQLite, základy modulu python sqlite3, vytváranie tabuľky v databáze, vkladanie údajov do tabuľky, dopytovanie údajov z tabuľky a aktualizácia údajov tabuľky.

Výhody použitia SQLite

Hlavné výhody používania SQLite sú:

SQLite sa tiež používa v prehliadači Google Chrome na ukladanie súborov cookie, údajov používateľov a ďalších dôležitých údajov vrátane hesiel používateľov. Android OS tiež používa SQLite ako svoj primárny databázový stroj na ukladanie údajov.

Modul Python SQLite3

Aby sme mohli používať SQLite, musíme do nášho systému nainštalovať Python. Ak vo svojom systéme nemáte nainštalovaný Python, môžete si prečítať nášho podrobného sprievodcu inštaláciou Pythonu v systéme Linux. Mohli by sme použiť SQLite v Pythone pomocou sqlite3 modul dostupný v štandardnej knižnici Pythonu. Gerhard Häring napísal modul sqlite3; poskytuje rozhranie SQL kompatibilné s DB-API 2.0. Je predinštalovaný so štandardnou knižnicou Pythonu, takže sa už nemusíme obávať žiadnej ďalšej inštalácie.

Vytvára sa pripojenie k databáze

Prvým krokom pri práci s SQLite v Pythone je nastavenie spojenia s databázou. Môžeme to urobiť pomocou metódy connect () programu sqlite3 na vytvorenie spojenia. Príklad nájdete v nasledujúcom kóde. Môžete jednoducho skopírovať kód do IDE alebo textového editora a spustiť ho. Ak máte problém s výberom IDE pre Python, môžete si prečítať nášho sprievodcu porovnávaním najlepšieho IDE pre Python. Odporúča sa prepísať kód znova do vášho IDE. Ak chcete kód skopírovať, skontrolujte syntax s tu uvedeným kódom.

# import požadovaných modulov importuje sqlite3 # nastavenie spojenia s databázou conn = sqlite3.pripojiť („ukážka.db ") print (" Úspešne pripojené k databáze ") # ukončenie spojenia spojenia.Zavrieť()

Vyššie uvedený program vytvorí spojenie so vzorkou databázového súboru SQLite.db.„Poskytne nasledujúci výstup v termináli.

Pozrime sa, čo sa deje vo vyššie uvedenom kóde. V prvom riadku sme importovali modul sqlite3, ktorý nám pomôže pracovať s databázami SQLite v Pythone.

V druhom riadku vytvoríme spojenie so súborom databázy SQLite s názvom „sample.db “pomocou pripojiť () funkcia. Funkcia connect () akceptuje cestu k databázovému súboru ako argument. Ak súbor v danej ceste neexistuje, potom sám vytvorí nový databázový súbor s daným menom v tejto ceste. Funkcia connect () vráti databázový objekt v našom programe; vrátený objekt uložíme do premennej s názvom prip.

Tretí riadok v našom programe je jednoduchý tlačiť vyhlásenie na zobrazenie správy o úspešnom pripojení. Posledný riadok programu preruší spojenie s databázou pomocou Zavrieť() funkcia objektu spojenia.

V predchádzajúcom príklade sme vytvorili databázu na disk, ale môžeme vytvoriť databázu aj do primárnej pamäte RAM. Vytvorenie databázy v pamäti RAM umožňuje vykonávanie databázy rýchlejšie ako obvykle. Databáza bude stále vytvorená dočasne a po ukončení vykonávania programu ju z pamäte vymaže. Môžeme vytvoriť databázu v pamäti zadaním konkrétneho názvu: memory: ako argumentu do pripojiť () funkcia. Nasledujúci program slúži ako ilustrácia.

importovať sqlite3 conn = sqlite3.connect (": memory:") print ("\ n [+] Databáza bola úspešne vytvorená v pamäti") conn.Zavrieť()

Vyššie uvedený program vytvorí databázu v RAM a môžeme ju použiť na vykonávanie takmer všetkých úloh, ktoré môžeme robiť s databázami vytvorenými na disku. Táto metóda je užitočná pri vytváraní dočasnej virtuálnej databázy z nejakého dôvodu.

Kurzor SQLite3

Akurzor objekt je naše rozhranie s databázou, ktoré umožňuje spustenie ľubovoľnéhoSQL dotaz v databáze. Aby sme mohli vykonávať akékoľvek skripty SQL pomocou sqlite3, musíme vytvoriť objekt kurzora. Na vytvorenie objektu kurzora je potrebné použiť znak kurzor () metóda spojenie objekt. Môžeme vytvoriť kurzorový objekt našej databázy pomocou nasledujúceho kódu.

# import požadovaných modulov importuje sqlite3 # nastavenie pripojenia k databáze conn = sqlite3.pripojiť („ukážka.db ") print (" \ n [+] Úspešne pripojené k databáze ") cur = conn.cursor () print ("\ n [+] Kurzor bol úspešne nastavený") cur.zavrieť () # ukončenie spojenia spoj.Zavrieť()

Po spustení programu bude výstup viditeľný na nasledujúcom obrázku.

Pozrime sa, ako funguje vyššie uvedený kód. Vo vyššie uvedenom kóde prvý, druhý, tretí, nastavuje spojenie s databázou, ako je uvedené vyššie. Vo štvrtom riadku sme použili kurzor () metóda objektu pripojenia na vytvorenie objektu kurzora a uloženie vráteného objektu kurzora do premennej s názvom „cur“. Piaty riadok je všeobecný print () vyhlásenie. V šiestom riadku sme zničili objekt kurzora z pamäte pomocou znaku Zavrieť() metóda objektu kurzora.

Dátové typy SQLite

Predtým, ako budeme pokračovať, najskôr pochopíme dátové typy SQLite. Databázový stroj SQLite má niekoľko úložných tried na ukladanie mnohých typov údajov, vrátane textu, binárnych údajov, celého čísla atď. Každá hodnota má jeden z nasledujúcich typov údajov.

Typy údajov SQLite:

Porovnanie dátových typov SQLite a Python

Mnohokrát bude potrebné použiť dátové typy pythonu na ukladanie niektorých údajov SQL a vykonávanie niektorých činností. Aby sme to mohli urobiť, musíme vedieť, ktoré dátové typy SQL sa vzťahujú na ktoré dátové typy pythonu.

Nasledujúce typy Pythonu sú trochu podobné dátovým typom SQLite:

Typ Python Typ SQLite
Žiadne NULOVÝ
int INTEGER
plavák REÁLNY
str TEXT
bajtov BLOB

Vytvorenie tabuľky pomocou SQLite

Na vytvorenie tabuľky pomocou SQLite musíme použiť VYTVORIŤ TABUĽKU vyhlásenie SQL v vykonať () metóda objektu kurzora. Nižšie je uvedená základná syntax príkazu CREATE TABLE v jazyku SQL:

CREATE TABLE table_name (názov_stĺpca obmedzenia dátového typu, ... názov_stĺpca obmedzenie dátového typu);

Ak chcete použiť vyššie uvedený príkaz SQLite v Pythone, musíme spustiť nasledujúci ukážkový program. V našej databáze vytvorí tabuľku s názvom zamestnanec.

importovať sqlite3 conn = sqlite3.pripojiť („ukážka.db ") print (" \ n [+] Úspešne pripojené k databáze ") cur = conn.cursor () print ("\ n [+] Kurzor bol úspešne nastavený") table = cur.execute ("" "VYTVORIŤ TABUĽKU zamestnanec (id INT PRIMÁRNY KLÍČ, meno CHAR (25), plat CHAR (25), dátum spojenia DATE);" "") print ("\ n [+] Tabuľka bola úspešne vytvorená") kur.zavrieť () spoj.Zavrieť()

Vo vyššie uvedenom programe sme vytvorili zamestnanec tabuľka s atribútmi id, meno, plat, a dátum pripojenia. Túto tabuľku je možné teraz použiť na ukladanie údajov alebo na dopytovanie údajov podľa požiadaviek. V termináli uvidíte nasledujúci výstup.

Vo vyššie uvedenom kóde sme použili vykonať () metóda kurzora na spustenie príkazu SQL na vytvorenie tabuľky s danými stĺpcami.

Vkladanie údajov do tabuľky

Vytvorili sme tabuľku v našej databáze SQLite. Teraz doň vložíme nejaké dáta pomocou SQL. Základná syntax príkazu INSERT jazyka SQL je:

INSERT INTO table_name (columns_name_1, columns_name_2,…) VALUES (columns_data_1, columns_data_1, ...)

Vo vyššie uvedenej syntaxi je nazov_tabulky je názov tabuľky, do ktorej chceme vložiť naše údaje. The column_name_1, column_name_2, sú názvy stĺpcov v tabuľke. The stĺpec_data_1, column_data_2,… sú údaje, ktoré chceme vložiť do daných stĺpcov.

Pozrime sa na praktickú ukážku vkladania údajov do tabuľky. Do našej tabuľky s názvom pridáme nejaké údaje zamestnanec pomocou SQLite a Pythonu. Spustením nižšie uvedeného kódu vložte niektoré údaje do tabuľky.

importovať sqlite3 conn = sqlite3.pripojiť („ukážka.db ") print (" \ n [+] Úspešne pripojené k databáze ") cur = conn.cursor () print ("\ n [+] Kurzor bol úspešne nastavený") cur.execute ("INSERT INTO employee (id, name, plate, joining_date) VALUES (1001, 'David', 50000, '1-08-2019')") cur.execute ("INSERT INTO employee (id, name, plate, joining_date) VALUES (1002, 'Sam', 80000, '3-09-2020')") cur.execute ("INSERT INTO employee (id, name, plate, joining_date) VALUES (1003, 'Roshan', 90000, '8-08-2020')") cur.execute ("INSERT INTO employee (id, name, plate, joining_date) VALUES (1004, 'Kishan', 100000, '9-09-2020')") cur.execute ("INSERT INTO employee (id, name, plate, joining_date) VALUES (1005, 'Ankit', 111000, '10 -05-2019 ')") print ("\ n [+] Údaje boli vložené úspešne" ) cur.zavrieť () spoj.potvrdiť () spoj.Zavrieť()

Vyššie uvedený kód vloží niektoré údaje do súboru zamestnanec tabuľku, ktorú sme vytvorili skôr. Pozrime sa, čo sa deje v kóde. Prvých päť riadkov sa používa na vytvorenie spojenia s databázou a nastavenie kurzora. V riadkoch od šiestej do desiatej musíme na vloženie údajov do tabuľky zamestnancov použiť príkaz INSERT jazyka SQL. V prvej zátvorke musíme použiť názov stĺpca tabuľky zamestnancov a údaje pre stĺpce v druhej zátvorke. Musíme len použiť spáchať () spôsob pripojenia objektu pred odpojením od databázy, inak sa vykonané zmeny neuložia do databázy.

Dopytovanie údajov z tabuľky

Naučili sme sa, ako vkladať údaje do databázy SQLite, ale tiež musíme vyhľadávať údaje z databázy, ktoré majú používať náš program alebo používatelia. Na dopytovanie údajov môžeme použiť príkaz SELECT jazyka SQL v rámci metódy execute (). Nižšie je uvedená základná syntax príkazu SELECT.

VYBERTE názvy stĺpcov FROM názov_tabuľky

The stĺpce_názvy v syntaxi bude názov stĺpcov, ktoré musíme vyhľadávať. Tieto stĺpce musia byť v tabuľke, ktorej názov je uvedený namiesto nazov_tabulky. Teraz sa pozrime, ako by sme mohli použiť túto syntax na dopytovanie údajov z našej tabuľky zamestnancov. Spustením nasledujúceho kódu zobrazíte ilustráciu.

importovať sqlite3 conn = sqlite3.pripojiť („ukážka.db ") print (" \ n [+] Úspešne pripojené k databáze ") cur = conn.cursor () print ("\ n [+] Kurzor bol úspešne nastavený") cur.execute ("SELECT id, name FROM employee") table = cur.fetchall () pre i v tabuľke: print (i) cur.zavrieť () spoj.potvrdiť () spoj.Zavrieť()

Výstup poskytovaný vyššie uvedeným programom je uvedený nižšie.

Vyššie uvedený program vyhľadá v stĺpcoch tabuľky zamestnancov id a názov. Môžeme zhromažďovať údaje, ktoré boli vrátené pomocou fetchall () metóda objektu kurzora. Vrátené údaje sú zoznamom pythonu obsahujúcim riadky, na ktoré sme sa pýtali. Na zobrazenie jednotlivých riadkov musíme na iteráciu zoznamu použiť slučku Python for; Tu si môžete prečítať viac informácií o cykle Python for. Teraz sa pozrime na niektoré užitočné veci, ktoré môžeme vykonať pomocou príkazu SELECT.

Načítať všetky údaje z tabuľky

Niekedy je potrebné načítať všetky záznamy z databázovej tabuľky. Ak chcete získať všetky záznamy pomocou príkazu SELECT v jazyku SQL, musíme postupovať podľa nasledujúcej základnej syntaxe:

SELECT * FROM table_name

The * symbol sa použije na označenie všetkých stĺpcov a pomocou neho môžeme dopytovať všetky stĺpce tabuľky SQLite. Na získanie všetkých záznamov od zamestnanca tabuľky, ktorého sme vytvorili skôr, musíme spustiť nasledujúci kód.

importovať sqlite3 conn = sqlite3.pripojiť („ukážka.db ") print (" \ n [+] Úspešne pripojené k databáze ") cur = conn.cursor () print ("\ n [+] Kurzor bol úspešne nastavený") cur.vykonať ("VYBERTE * OD zamestnanca") riadky = cur.fetchall () print ("\ n [+] Dotazovanie na údaje \ n") pre i v riadkoch: print (i) cur.zavrieť () spoj.potvrdiť () spoj.Zavrieť()

Vyššie uvedený kód zobrazí všetky záznamy v tabuľke zamestnancov, ktorú sme vytvorili skôr. Výstupom programu bude asi tento výstup:

Údaje dopytu v konkrétnom poradí

Niekedy potrebujeme dopytovať údaje z tabuľky v určitom poradí, napríklad vzostupne alebo zostupne. Na zobrazenie údajov v poradí môžeme použiť príkaz SELECT s kľúčovým slovom ORDER BY. Základná syntax kľúčového slova ORDER BY v príkaze SELECT je:

VYBERTE stĺpce_name FROM názov_ tabuľky OBJEDNÁVKA podľa stĺpce_name

Pozrime sa, ako môžeme pomocou kľúčového slova OBJEDNAŤ na zobrazenie údajov z poradia tabuľky zamestnancov podľa názvu.

importovať sqlite3 conn = sqlite3.pripojiť („ukážka.db ") print (" \ n [+] Úspešne pripojené k databáze ") cur = conn.cursor () print ("\ n [+] Kurzor bol úspešne nastavený") cur.execute ("SELECT * FROM employee ORDER BY name") table = cur.fetchall () pre i v tabuľke: print (i) cur.zavrieť () spoj.potvrdiť () spoj.Zavrieť()

Môžete vidieť výstup vyššie uvedeného kódu, ako je uvedené nižšie.

Vo výstupe si môžete všimnúť, že údaje sa zobrazili vo vzostupnom poradí podľa stĺpca názov.

Aktualizácia záznamov v tabuľke

Existuje veľa situácií, keď chceme aktualizovať tabuľku našich databáz. Napríklad ak používame databázu pre školskú aplikáciu, budeme musieť údaje aktualizovať, ak študent prestúpil do nového mesta. Riadok ľubovoľnej tabuľky našej databázy môžeme rýchlo aktualizovať pomocou AKTUALIZÁCIA príkaz SQL v metóde execute (). Budeme musieť použiť klauzulu WHERE jazyka SQL ako podmienku na výber zamestnanca. Základná syntax súboru AKTUALIZÁCIA vyhlásenie je uvedené nižšie.

UPDATE table_name SET update_required WHERE Some_condition

Nasledujúci príklad je ilustráciou vyhlásenia UPDATE.

importovať sqlite3 conn = sqlite3.pripojiť („ukážka.db ") print (" \ n [+] Úspešne pripojené k databáze ") cur = conn.cursor () print ("\ n [+] Kurzor bol úspešne nastavený") print ("\ n [+] dáta pred aktualizáciou \ n") cur.vykonať ("VYBRAT * OD zamestnanca") pred = cur.fetchall () pre i in before: print (i) cur.vykonať ("UPDATE zamestnanec SET name = 'Aditya' kde name = 'Sam'") vytlačiť ("\ n [+] údaje po aktualizácii \ n") cur.execute ("SELECT * FROM employee") after = cur.fetchall () pre i in after: print (i) cur.zavrieť () spoj.potvrdiť () spoj.Zavrieť()

Vyššie uvedený program aktualizuje zamestnanca tabuľky. Nahrádza meno Sam s menom Aditya kdekoľvek sa v tabuľke objaví. Výstup programu nájdete na nasledujúcom obrázku.

Záver

Toto je náš komplexný sprievodca vykonaním niektorých základných úloh súvisiacich s databázou SQLite pomocou jazyka Python. V nadchádzajúcom tutoriáli uvidíme niekoľko pokročilejších spôsobov použitia, ktoré by vás mali posunúť na ďalšiu úroveň výučby databázy SQLite pre Python. Zostaňte naladení na FOSSLinux.

Hry Ako používať GameConqueror Cheat Engine v Linuxe
Ako používať GameConqueror Cheat Engine v Linuxe
Tento článok obsahuje sprievodcu používaním cheatovacieho modulu GameConqueror v systéme Linux. Mnoho používateľov, ktorí hrajú hry v systéme Windows,...
Hry Najlepšie emulátory herných konzol pre systém Linux
Najlepšie emulátory herných konzol pre systém Linux
V tomto článku je uvedený zoznam populárneho softvéru na emuláciu herných konzol, ktorý je k dispozícii pre systém Linux. Emulácia je vrstva kompatibi...
Hry Najlepšie linuxové distribúcie pre hry v roku 2021
Najlepšie linuxové distribúcie pre hry v roku 2021
Operačný systém Linux prešiel dlhou cestou od svojho originálneho, jednoduchého serverového vzhľadu. Tento OS sa za posledné roky nesmierne vylepšil a...