Programmering

Grundlæggende om at arbejde med SQLite-databasen i Python

Grundlæggende om at arbejde med SQLite-databasen i Python

En database er en af ​​de mest nyttige og populære filer til lagring af data; de kan bruges til at gemme enhver form for data, herunder tekst, tal, billeder, binære data, filer osv. SQLite er et relationsdatabasehåndteringssystem baseret på SQL-sproget. Det er et C-bibliotek, og det giver en API til at arbejde med andre programmeringssprog, herunder Python. Det kræver ikke, at der køres en separat serverproces efter behov i store databasemotorer som MySQL og Postgresql.

Det er hurtigt og let, og hele databasen er gemt i en enkelt diskfil, hvilket gør den bærbar som CSV eller andre datalagringsfiler. Mange applikationer bruger SQLite til intern datalagring, hovedsageligt i miljøer som mobile enheder eller små applikationer.

SQLite-database til Python

Lad os tage et dybt dyk i SQLite med python-programmeringssproget. I denne vejledning lærer vi fordelene ved at bruge SQLite, grundlæggende i python sqlite3-modul, Oprettelse af en tabel i en database, Indsættelse af data i tabellen, Forespørgsel om data fra tabellen og Opdatering af data i tabellen.

Fordele ved at bruge SQLite

De vigtigste fordele ved at bruge SQLite er:

SQLite bruges også i Google Chrome til at gemme cookies, brugerdata og andre vigtige data, herunder brugeradgangskoder. Android OS bruger også SQLite som sin primære databasemotor til at gemme data.

Python SQLite3-modul

For at bruge SQLite skal vi have Python installeret i vores system. Hvis du ikke allerede har Python installeret i dit system, kan du se vores trinvise vejledning til installation af Python i Linux. Vi kunne bruge SQLite i Python ved hjælp af sqlite3 modul tilgængeligt i Pythons standardbibliotek. Gerhard Häring skrev sqlite3-modulet; det giver en SQL-interface, der er kompatibel med DB-API 2.0. Det leveres forudinstalleret med Python-standardbiblioteket, så vi behøver ikke bekymre os om yderligere installation.

Oprettelse af forbindelse til en database

Det første trin, mens du arbejder med SQLite i Python, er at oprette en forbindelse til en database. Vi kan gøre dette ved at bruge metoden connect () i sqlite3 til at oprette en forbindelse. Se på følgende kode for et eksempel. Du kan simpelthen kopiere koden til en IDE eller en teksteditor og udføre den. Hvis du har et problem med at vælge IDE til Python, kan du henvise til vores guide til sammenligning af den bedste python IDE. Det anbefales at omskrive koden igen i din IDE, og hvis du vil kopiere koden, skal du kontrollere syntaksen med den kode, der er til stede her.

# import af de krævede moduler importerer sqlite3 # opsætning af forbindelsen med databasen conn = sqlite3.forbinde ("prøve.db ") print (" Tilsluttet til databasen ") # lukning af forbindelsesforbindelse.tæt()

Ovenstående program opretter en forbindelse med SQLite-databasefilen “prøve.db.”Det giver følgende output i terminalen.

Lad os se, hvad der sker i ovenstående kode. I første linje har vi importeret sqlite3-modulet, som hjælper os med at arbejde med SQLite-databaser i Python.

I anden linje opretter vi en forbindelse med en SQLite-databasefil med navnet “sample.db ”ved hjælp af Opret forbindelse() fungere. Funktionen connect () accepterer stien til databasefilen som et argument. Hvis filen ikke findes i den givne sti, opretter den selv en ny databasefil med det givne navn i stien. Connect () -funktionen returnerer et databaseobjekt i vores program; vi gemmer det returnerede objekt i en variabel med navnet tilslutning.

Den tredje linje i vores program er en enkel Print erklæring for at få vist en besked om en vellykket forbindelse. Den sidste linje i programmet afbryder forbindelsen til databasen ved hjælp af tæt() forbindelsesobjektets funktion.

I det foregående eksempel har vi oprettet databasen til disken, men vi kan også oprette en database i det primære hukommelses-RAM. Oprettelse af en database i RAM'en gør udførelsen af ​​databasen hurtigere end normalt. Databasen oprettes stadig midlertidigt, og da programudførelsen stopper, slettes den fra hukommelsen. Vi kan oprette en database i hukommelsen ved at levere det bestemte navn: hukommelse: som et argument til Opret forbindelse() fungere. Se nedenstående program som en illustration.

import sqlite3 conn = sqlite3.connect (": memory:") print ("\ n [+] Database er oprettet med succes i Memory") conn.tæt()

Ovenstående program opretter en database i RAM'en, og vi kan bruge den til at udføre næsten enhver opgave, vi kan udføre med databaser oprettet på disken. Denne metode er nyttig, når du opretter en midlertidig virtuel database af en eller anden grund.

SQLite3-markør

ENcursoren objektet er vores grænseflade til databasen, der gør det muligt at køre enhverSQL-forespørgsel på databasen. For at udføre eventuelle SQL-scripts ved hjælp af sqlite3 skal vi oprette et markørobjekt. For at oprette et markørobjekt skal vi bruge cursoren() metode til forbindelse objekt. Vi kan oprette et markørobjekt i vores database ved hjælp af følgende kode.

# import af de krævede moduler importerer sqlite3 # opsætning af forbindelsen til databasen conn = sqlite3.forbinde ("prøve.db ") print (" \ n [+] Vellykket forbundet til databasen ") cur = conn.cursor () print ("\ n [+] Markør er blevet konfigureret med succes") cur.luk () # lukning af forbindelsesforb.tæt()

Når programmet udføres, vises output som vist i nedenstående billede.

Lad os se, hvordan ovenstående kode fungerer. I ovenstående kode opretter den første, anden, tredje, en forbindelse til databasen, som vist tidligere. I fjerde linje har vi brugt cursoren() metode til forbindelsesobjektet til at oprette et markørobjekt og gemme det returnerede markørobjekt i en variabel med navnet “cur”. Den femte linje er en generel Print() udmelding. I den sjette linje ødelagde vi markørobjektet fra hukommelsen ved hjælp af tæt() markørobjektets metode.

SQLite-datatyper

Før vi fortsætter, skal vi først forstå SQLite-datatyper. SQLite-databasemotor har flere lagerklasser til at gemme mange typer data, herunder tekst, binære data, heltal osv. Hver værdi har en af ​​følgende datatyper.

SQLite datatyper:

Sammenligning af SQLite- og Python-datatyper

Der vil være mange gange, hvor vi har brug for python-datatyper til at gemme nogle SQL-data og udføre nogle aktiviteter. For at sådan en ting skal gøres, skal vi vide, hvilke SQL-datatyper der er relateret til hvilke pythondatatyper.

Følgende Python-typer svarer noget til SQLite-datatyperne:

Pythontype SQLite-type
Ingen NUL
int HELTAL
flyde ÆGTE
str TEKST
bytes BLOB

Oprettelse af en tabel ved hjælp af SQLite

For at oprette en tabel ved hjælp af SQLite skal vi bruge Opret TABEL redegørelse for SQL i udføre () markørobjektets metode. Den grundlæggende syntaks for CREATE TABLE-sætningen i SQL vises nedenfor:

OPRET TABEL tabelnavn (kolonnenavn Datatype-begrænsning,… kolonnenavn Datatype-begrænsning);

For at bruge ovenstående SQLite-sætning i Python skal vi køre nedenstående eksempelprogram. Det opretter en tabel med navnet medarbejder i vores database.

import sqlite3 conn = sqlite3.forbinde ("prøve.db ") print (" \ n [+] Vellykket forbundet til databasen ") cur = conn.cursor () print ("\ n [+] Markør er oprettet med succes") tabel = cur.execute ("" "Opret TABEL medarbejder (id INT PRIMÆR NØGLE, navn CHAR (25), løn CHAR (25), joining_date DATE);" "") print ("\ n [+] Tabellen er oprettet med succes") cur.luk () tilslut.tæt()

I ovenstående program oprettede vi en medarbejder tabel med attributterne id, navn, løn, og tilslutning_dato. Denne tabel kan nu bruges til lagring af data eller forespørgsel på data efter krav. Du ser følgende output i terminalen.

I ovenstående kode har vi brugt udføre () metode til markørobjektet til at køre SQL-kommandoen for at oprette en tabel med de givne kolonner.

Indsættelse af data i en tabel

Vi har oprettet en tabel i vores SQLite-database. Lad os nu indsætte nogle data i det ved hjælp af SQL. Den grundlæggende syntaks for SQL-sætningen INSERT er:

INDSÆT TIL tabelnavn (søjlenavn_1, søjlenavn_2,…) VÆRDIER (søjledata_1, søjledata_1,…)

I ovenstående syntaks er tabelnavn er navnet på den tabel, hvor vi vil indsætte vores data. Det kolonnenavn_1, kolonnenavn_2,.. er navnet på de kolonner, der findes i tabellen. Det column_data_1, column_data_2,… er de data, vi vil indsætte i de givne kolonner.

Lad os se en praktisk demo for at indsætte data i en tabel. Vi tilføjer nogle data i vores tabel, der hedder medarbejder ved hjælp af SQLite og Python. Kør nedenstående kode for at indsætte nogle data i tabellen.

import sqlite3 conn = sqlite3.forbinde ("prøve.db ") print (" \ n [+] Vellykket forbundet til databasen ") cur = conn.cursor () print ("\ n [+] Markør er konfigureret med succes") cur.execute ("INDSÆT I medarbejder (id, navn, løn, sammenføjningsdato) VÆRDIER (1001, 'David', 50000, '1-08-2019')") cur.execute ("INDSÆT I medarbejder (id, navn, løn, sammenføjningsdato) VÆRDIER (1002, 'Sam', 80000, '3-09-2020')") cur.execute ("INDSÆT I medarbejder (id, navn, løn, sammenføjningsdato) VÆRDIER (1003, 'Roshan', 90000, '8-08-2020')") cur.execute ("INDSÆT I medarbejder (id, navn, løn, sammenføjningsdato) VÆRDIER (1004, 'Kishan', 100000, '9-09-2020')") cur.execute ("INSERT INTO employee (id, name, løn, joining_date) VALUES (1005, 'Ankit', 111000, '10 -05-2019 ')") print ("\ n [+] Data er indsat med succes" ) cur.luk () tilslut.begå () konn.tæt()

Ovenstående kode indsætter nogle data i medarbejder tabel, vi har oprettet tidligere. Lad os se, hvad der sker i koden. De første fem linjer bruges til at oprette forbindelse til databasen og opsætte markøren. I linjerne fra seks til ti skal vi bruge INSERT-kommandoen i SQL til at indsætte data i medarbejdertabellen. Vi skal bruge kolonnens navn på medarbejdertabellen i den første parentes og dataene til kolonnerne i den anden parentes. Vi skal bare bruge begå() metode til forbindelsesobjektet, inden du afbryder forbindelsen til databasen, ellers vil de ændringer, vi har foretaget, ikke blive gemt i databasen.

Forespørgsel om data fra en tabel

Vi har lært, hvordan man indsætter data i en SQLite-database, men vi skal også spørge data fra databasen, der skal bruges af vores program eller brugere. For at forespørge om data kan vi bruge SELECT-sætningen for SQL under metoden execute (). Den grundlæggende syntaks for SELECT-sætningen er vist nedenfor.

VÆLG kolonnenavne FRA tabelnavn

Det kolonnenavne i syntaksen vil være navnet på de kolonner, vi har brug for at forespørge om. Disse kolonner skal være til stede i tabellen, hvis navn er angivet i stedet for tabelnavn. Lad os nu se, hvordan vi kunne bruge denne syntaks til at forespørge på data fra vores medarbejdertabel. Kør bare følgende kode for at se en illustration.

importere sqlite3 conn = sqlite3.forbinde ("prøve.db ") print (" \ n [+] Vellykket forbundet til databasen ") cur = conn.cursor () print ("\ n [+] Markør er konfigureret med succes") cur.execute ("VÆLG id, navn FRA medarbejder") tabel = cur.fetchall () for i i tabel: print (i) cur.luk () tilslut.begå () konn.tæt()

Output leveret af ovenstående program er vist nedenfor.

Ovenstående program vil forespørge medarbejdertabellen for kolonnerne id og navn. Vi kan indsamle de data, der er returneret ved hjælp af fetchall () markørobjektets metode. De returnerede data er en pythonliste, der indeholder de rækker, vi forespurgte om. For at få vist individuelle rækker skal vi bruge Python til loop til at gentage listen; du kan læse mere om Python for loop her. Lad os nu se nogle nyttige ting, som vi kan udføre med SELECT-sætningen.

Hent alle data fra en tabel

Nogle gange er der behov for at hente alle poster fra en databasetabel. For at få alle poster ved hjælp af SELECT-sætningen af ​​SQL skal vi følge den basale syntaks nedenfor:

VÆLG * FRA tabelnavn

Det * symbol vil blive brugt til at betegne alle kolonnerne, og ved at bruge dette kan vi forespørge på alle kolonnerne i en SQLite-tabel. For at hente alle poster fra den tabelmedarbejder, vi har oprettet tidligere, skal vi køre følgende kode.

import sqlite3 conn = sqlite3.forbinde ("prøve.db ") print (" \ n [+] Vellykket tilsluttet databasen ") cur = conn.cursor () print ("\ n [+] Markør er konfigureret med succes") cur.udfør ("VÆLG * FRA medarbejder") rækker = cur.fetchall () print ("\ n [+] Forespørgsel om data \ n") for i i rækker: print (i) cur.luk () tilslut.begå () konn.tæt()

Ovenstående kode viser alle de poster, der findes i medarbejdertabellen, som vi har oprettet tidligere. Programmets output vil være noget som dette:

Forespørgselsdata i specifik rækkefølge

Nogle gange er vi nødt til at spørge data fra en tabel i en bestemt rækkefølge som stigende eller faldende. Vi kan bruge SELECT-sætningen med ORDER BY-nøgleordet til at vise data i rækkefølge. Den grundlæggende syntaks for ORDER BY-nøgleordet i SELECT-sætningen er:

VÆLG kolonnenavn FRA tabelnavn BESTIL EFTER kolonnenavn

Lad os se, hvordan vi kan bruge ORDER BY-nøgleordet til at vise data fra medarbejdertabelordren med navnet.

import sqlite3 conn = sqlite3.forbinde ("prøve.db ") print (" \ n [+] Vellykket tilsluttet databasen ") cur = conn.cursor () print ("\ n [+] Markør er konfigureret med succes") cur.udfør ("VÆLG * FRA medarbejder ORDER PÅ navn") tabel = cur.fetchall () for i i tabel: print (i) cur.luk () tilslut.begå () konn.tæt()

Du kan muligvis se output fra ovenstående kode som vist nedenfor.

Du bemærker muligvis i output, at dataene er vist i stigende rækkefølge i kolonnen navn.

Opdatering af poster i en tabel

Der er mange situationer, hvor vi vil opdatere tabellen over vores databaser. For eksempel, hvis vi bruger databasen til en skoleapplikation, skal vi opdatere dataene, hvis en elev overføres til en ny by. Vi kan hurtigt opdatere en række af enhver tabel i vores database ved hjælp af OPDATER sætning af SQL i execute () -metoden. Vi bliver nødt til at bruge WHERE-klausulen om SQL som en betingelse for at vælge medarbejderen. Den grundlæggende syntaks for OPDATER udsagn er vist nedenfor.

UPDATE table_name SET update_required WHERE Some_condition

Se nedenstående eksempel som en illustration af UPDATE-erklæringen.

import sqlite3 conn = sqlite3.forbinde ("prøve.db ") print (" \ n [+] Vellykket tilsluttet databasen ") cur = conn.cursor () print ("\ n [+] Markør er konfigureret med succes") print ("\ n [+] Data Before Update \ n") cur.udfør ("VÆLG * FRA medarbejder") før = cur.fetchall () for i i før: print (i) cur.udfør ("UPDATE medarbejder SET navn = 'Aditya' hvor navn = 'Sam'") udskriver ("\ n [+] Data efter opdatering \ n") cur.udfør ("VÆLG * FRA medarbejder") efter = cur.fetchall () for i efter: print (i) cur.luk () tilslut.begå () konn.tæt()

Ovenstående program opdaterer bordmedarbejderen. Det erstatter navnet Sam med navnet Aditya uanset hvor det vises i tabellen. Se nedenstående billede for output af programmet.

Konklusion

Det er vores omfattende guide til at udføre nogle grundlæggende SQLite-database-relaterede opgaver ved hjælp af Python. I den kommende vejledning vil vi se et par mere avancerede anvendelser, der skal føre dig til det næste niveau af læring af SQLite-database til Python. Hold dig opdateret med FOSSLinux.

Top 10 spil at spille på Ubuntu
Windows-platform har været en af ​​de dominerende platforme til spil på grund af den enorme procentdel af spil, der udvikler sig i dag til indbygget a...
5 bedste arkadespil til Linux
I dag er computere seriøse maskiner, der bruges til spil. Hvis du ikke kan få den nye høje score, ved du hvad jeg mener. I dette indlæg vil du kende n...
Kamp om Wesnoth 1.13.6 Udvikling frigivet
Kamp om Wesnoth 1.13.6 udgivet i sidste måned, er den sjette udviklingsudgivelse i 1.13.x-serien, og den leverer en række forbedringer, især til bruge...