Programmering

Grunnleggende om å jobbe med SQLite-databasen i Python

Grunnleggende om å jobbe med SQLite-databasen i Python

En database er en av de mest nyttige og populære filene for lagring av data; de kan brukes til å lagre alle slags data, inkludert tekst, tall, bilder, binære data, filer osv. SQLite er et relasjonelt databasestyringssystem basert på SQL-språket. Det er et C-bibliotek, og det gir et API for å jobbe med andre programmeringsspråk, inkludert Python. Det krever ikke at en egen serverprosess kjøres etter behov i store databasemotorer som MySQL og Postgresql.

Den er rask og lett, og hele databasen er lagret i en enkelt diskfil, noe som gjør den bærbar som CSV eller andre datalagringsfiler. Mange applikasjoner bruker SQLite til intern datalagring, hovedsakelig i miljøer som mobile enheter eller små applikasjoner.

SQLite-database for Python

La oss ta et dypdykk i SQLite med python-programmeringsspråket. I denne opplæringen lærer vi fordelene ved å bruke SQLite, grunnleggende om python sqlite3-modulen, lage en tabell i en database, sette inn data i tabellen, spørre data fra tabellen og oppdatere data i tabellen.

Fordeler med å bruke SQLite

De viktigste fordelene ved å bruke SQLite er:

SQLite brukes også i Google Chrome til å lagre informasjonskapsler, brukerdata og andre viktige data, inkludert brukerpassord. Android OS bruker også SQLite som sin primære databasemotor for å lagre data.

Python SQLite3-modul

For å bruke SQLite trenger vi at Python installeres i systemet vårt. Hvis du ikke allerede har Python installert i systemet ditt, kan du se vår trinnvise guide for å installere Python i Linux. Vi kunne bruke SQLite i Python ved hjelp av sqlite3 modul tilgjengelig i Pythons standardbibliotek. Gerhard Häring skrev sqlite3-modulen; det gir et SQL-grensesnitt som er kompatibelt med DB-API 2.0. Den leveres forhåndsinstallert med Python-standardbiblioteket, så vi trenger ikke bekymre oss for ytterligere installasjon.

Opprette forbindelse til en database

Det første trinnet mens du arbeider med SQLite i Python, er å sette opp en forbindelse med en database. Vi kan gjøre dette ved å bruke connect () -metoden til sqlite3 for å sette opp en forbindelse. Se på følgende kode for et eksempel. Du kan ganske enkelt kopiere koden til en IDE eller en tekstredigerer og utføre den. Hvis du har problemer med å velge IDE for Python, kan du se i vår guide om sammenligning av den beste python IDE. Det anbefales å skrive om koden på nytt i IDE, og hvis du vil kopiere koden, vennligst sjekk syntaksen med koden som er tilstede her.

# importerer nødvendige moduler importerer sqlite3 # sette opp forbindelsen med databasen conn = sqlite3.koble til ("prøve.db ") utskrift (" Vellykket koblet til databasen ") # lukker tilkoblingsforbindelsen.Lukk()

Ovennevnte program vil opprette en forbindelse med SQLite-databasefilen “eksempel.db.”Det vil gi følgende utgang i terminalen.

La oss se hva som skjer i koden ovenfor. I første linje har vi importert sqlite3-modulen, som vil hjelpe oss å jobbe med SQLite-databaser i Python.

I den andre linjen oppretter vi en forbindelse med en SQLite-databasefil som heter “sample.db ”ved hjelp av koble() funksjon. Connect () -funksjonen godtar banen til databasefilen som et argument. Hvis filen ikke eksisterer i den gitte banen, vil den selv opprette en ny databasefil med det gitte navnet i den banen. Connect () -funksjonen vil returnere et databaseobjekt i programmet vårt; vi lagrer det returnerte objektet i en variabel som heter tilkobling.

Den tredje linjen i programmet vårt er enkelt skrive ut uttalelse for å vise en melding om en vellykket forbindelse. Den siste linjen i programmet bryter forbindelsen til databasen ved hjelp av Lukk() funksjonen til tilkoblingsobjektet.

I det forrige eksemplet har vi opprettet databasen til disken, men vi kan også opprette en database i RAM-minnet. Å lage en database i RAM-en gjør kjøringen av databasen raskere enn vanlig. Likevel vil databasen opprettes midlertidig, og når programkjøringen stopper, vil den slette databasen fra minnet. Vi kan opprette en database i minnet ved å oppgi det spesielle navnet: minne: som et argument til koble() funksjon. Se programmet nedenfor som en illustrasjon.

importere sqlite3 conn = sqlite3.connect (": memory:") print ("\ n [+] Database er opprettet i Memory") conn.Lukk()

Ovennevnte program vil opprette en database i RAM-en, og vi kan bruke den til å utføre nesten alle oppgaver vi kan gjøre med databaser opprettet på disken. Denne metoden er nyttig når du oppretter en midlertidig virtuell database av en eller annen grunn.

SQLite3 markør

ENmarkøren objektet er vårt grensesnitt til databasen, som gjør det mulig å kjøre hvilken som helstSQL-spørring på databasen. For å utføre SQL-skript ved hjelp av sqlite3, må vi lage et markørobjekt. For å lage et markørobjekt, må vi bruke markør () metoden for forbindelse gjenstand. Vi kan opprette et markørobjekt av databasen vår ved hjelp av følgende kode.

# importerer nødvendige moduler importerer sqlite3 # sette opp tilkoblingen til databasen conn = sqlite3.koble til ("prøve.db ") print (" \ n [+] Vellykket koblet til databasen ") cur = conn.markør () utskrift ("\ n [+] Markøren er satt opp vellykket") cur.lukk () # lukker tilkoblingen.Lukk()

Når programmet kjøres, vises utdataene som vist på bildet nedenfor.

La oss se hvordan koden ovenfor fungerer. I koden ovenfor setter den første, andre, tredje opp en forbindelse med databasen, som vist tidligere. I fjerde linje har vi brukt markør () metode for tilkoblingsobjektet for å opprette et markørobjekt og lagre det returnerte markørobjektet i en variabel som heter "cur". Den femte linjen er en general skrive ut() uttalelse. I den sjette linjen ødela vi markørobjektet fra minnet ved å bruke Lukk() metode for markørobjektet.

SQLite-datatyper

Før vi går videre, la oss først forstå SQLite-datatyper. SQLite-databasemotoren har flere lagringsklasser for å lagre mange typer data, inkludert tekst, binære data, heltal osv. Hver verdi har en av følgende datatyper.

SQLite datatyper:

Sammenligning av datatyper av SQLite og Python

Det vil være mange ganger når vi trenger å bruke python-datatyper for å lagre noen SQL-data og utføre noen aktiviteter. For en slik ting å gjøre, må vi vite hvilke SQL-datatyper som er relatert til hvilke python-datatyper.

Følgende Python-typer ligner noe på SQLite-datatypene:

Pythontype SQLite-type
Ingen NULL
int INTEGER
flyte EKTE
str TEKST
byte BLOB

Opprette en tabell ved hjelp av SQLite

For å lage en tabell ved hjelp av SQLite, må vi bruke LAG TABELL uttalelse av SQL i henrette() metode for markørobjektet. Den grunnleggende syntaksen til CREATE TABLE-setningen i SQL er vist nedenfor:

CREATE TABLE table_name (column_name Data_type constraint,… column_name Data_type constraint);

For å bruke ovennevnte SQLite-setning i Python, må vi kjøre eksemplet nedenfor. Det vil opprette en tabell som heter ansatt i databasen vår.

importere sqlite3 conn = sqlite3.koble til ("prøve.db ") print (" \ n [+] Vellykket koblet til databasen ") cur = conn.markør () utskrift ("\ n [+] Markøren er satt opp vellykket") table = cur.execute ("" "OPPRETT TABELLmedarbeider (id INT PRIMÆR NØKKEL, navn CHAR (25), lønn CHAR (25), joining_date DATE);" "") print ("\ n [+] Tabellen er opprettet vellykket") cur.lukk () konn.Lukk()

I programmet ovenfor opprettet vi en ansatt tabell med attributtene id, navn, lønn, og blir med_dato. Denne tabellen kan nå brukes til å lagre data eller spørre data etter behov. Du vil se følgende utgang i terminalen.

I koden ovenfor har vi brukt henrette() metode for markørobjektet for å kjøre SQL-kommandoen for å lage en tabell med de gitte kolonnene.

Sette inn data i en tabell

Vi har laget en tabell i vår SQLite-database. La oss nå sette inn noen data i den ved hjelp av SQL. Den grunnleggende syntaksen for INSERT-setningen til SQL er:

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

I ovennevnte syntaks er tabellnavn er navnet på tabellen der vi ønsker å sette inn dataene våre. De kolonnenavn_1, kolonnenavn_2,.. er navnet på kolonnene i tabellen. De column_data_1, column_data_2,… er dataene vi ønsker å sette inn i de gitte kolonnene.

La oss se en praktisk demo for å sette inn data i en tabell. Vi vil legge til noen data i tabellen vår ansatt ved hjelp av SQLite og Python. Kjør koden nedenfor for å sette inn noen data i tabellen.

importere sqlite3 conn = sqlite3.koble til ("prøve.db ") print (" \ n [+] Vellykket koblet til databasen ") cur = conn.markør () utskrift ("\ n [+] Markøren er satt opp vellykket") cur.execute ("INSERT INTO employee (id, name, lønn, joining_date) VALUES (1001, 'David', 50000, '1-08-2019')") cur.execute ("INSERT INTO employee (id, name, lønning, joining_date) VALUES (1002, 'Sam', 80000, '3-09-2020')") cur.execute ("INSERT INTO employee (id, name, lønn, joining_date) VALUES (1003, 'Roshan', 90000, '8-08-2020')") cur.execute ("INSERT INTO employee (id, name, lønn, joining_date) VALUES (1004, 'Kishan', 100000, '9-09-2020')") cur.execute ("INSERT INTO employee (id, name, lønn, joining_date) VALUES (1005, 'Ankit', 111000, '10 -05-2019 ')") print ("\ n [+] Dataene er satt inn vellykket" ) cur.lukk () konn.begå () konn.Lukk()

Ovennevnte kode vil sette inn noen data i ansatt tabellen vi har laget tidligere. La oss se hva som skjer i koden. De første fem linjene brukes til å opprette en forbindelse med databasen og sette opp markøren. I linjene fra seks til ti må vi bruke INSERT-kommandoen til SQL for å sette inn data i arbeidstabellen. Vi må bruke kolonnenavnet på arbeidstabellen i den første parentesen og dataene for kolonnene i den andre parentesen. Vi trenger bare å bruke begå() metode for tilkoblingsobjektet før du kobler fra databasen ellers blir ikke endringene vi lagret lagret i databasen.

Spørring av data fra en tabell

Vi har lært hvordan vi setter inn data i en SQLite-database, men vi må også spørre om data fra databasen som skal brukes av vårt program eller brukere. For å spørre data kan vi bruke SELECT-setningen til SQL under metoden execute (). Den grunnleggende syntaksen til SELECT-setningen er vist nedenfor.

VELG kolonnenavn FRA tabellnavn

De kolonnenavn i syntaksen vil være navnet på kolonnene vi trenger å spørre om. Disse kolonnene må være tilstede i tabellen hvis navn er gitt i stedet for tabellnavn. La oss nå se hvordan vi kan bruke denne syntaksen til å spørre om data fra medarbeidertabellen. Bare kjør følgende kode for å se en illustrasjon.

importere sqlite3 conn = sqlite3.koble til ("prøve.db ") print (" \ n [+] Vellykket koblet til databasen ") cur = conn.markør () utskrift ("\ n [+] Markøren er satt opp vellykket") cur.kjør ("VELG id, navn FRA ansatt") tabell = cur.fetchall () for i i tabell: skriv ut (i) cur.lukk () konn.begå () konn.Lukk()

Resultatet fra programmet ovenfor er vist nedenfor.

Ovennevnte program vil spørre arbeidstabellen for kolonnene id og Navn. Vi kan samle inn dataene som er returnert ved hjelp av fetchall () metode for markørobjektet. De returnerte dataene er en pythonliste som inneholder radene vi spurte om. For å vise individuelle rader, må vi bruke Python for loop for å gjenta over listen; du kan lese mer om Python for loop her. La oss nå se noen nyttige ting som vi kan utføre med SELECT-setningen.

Hent alle data fra en tabell

Noen ganger er det behov for å hente alle postene fra en databasetabell. For å få alle postene ved hjelp av SELECT-setningen til SQL, må vi følge den grunnleggende syntaksen nedenfor:

VELG * FRA tabellnavn

De * symbolet vil bli brukt til å betegne alle kolonnene, og ved å bruke dette kan vi spørre alle kolonnene i en SQLite-tabell. For å hente alle postene fra tabellmedarbeideren vi har opprettet tidligere, må vi kjøre følgende kode.

importere sqlite3 conn = sqlite3.koble til ("prøve.db ") print (" \ n [+] Vellykket koblet til databasen ") cur = conn.markør () utskrift ("\ n [+] Markøren er satt opp vellykket") cur.utfør ("VELG * FRA ansatt") rader = cur.fetchall () print ("\ n [+] Spørring av data \ n") for i i rader: print (i) cur.lukk () konn.begå () konn.Lukk()

Ovennevnte kode vil vise alle postene i tabellen medarbeidere som vi har opprettet tidligere. Resultatet av programmet vil være omtrent slik:

Spørsmål i spesifikk rekkefølge

Noen ganger må vi spørre om data fra en tabell i en bestemt rekkefølge som stigende eller synkende. Vi kan bruke SELECT-setningen med ORDER BY-nøkkelordet for å vise data i rekkefølge. Den grunnleggende syntaksen til ORDER BY-nøkkelordet i SELECT-setningen er:

VELG kolonnenavn FRA tabellnavn BESTILL AV kolonnenavn

La oss se hvordan vi kan bruke ORDER BY-nøkkelordet til å vise data fra arbeidstakerens rekkefølge etter navnet.

importere sqlite3 conn = sqlite3.koble til ("prøve.db ") print (" \ n [+] Vellykket koblet til databasen ") cur = conn.markør () utskrift ("\ n [+] Markøren er satt opp vellykket") cur.utfør ("VELG * FRA medarbeider ORDER PÅ navn") tabell = cur.fetchall () for i i tabell: skriv ut (i) cur.lukk () konn.begå () konn.Lukk()

Du kan se utdataene fra koden ovenfor, som vist nedenfor.

Du kan merke i utdataene at dataene er vist i stigende rekkefølge i kolonnen Navn.

Oppdaterer poster i en tabell

Det er mange situasjoner når vi vil oppdatere tabellen over databasene våre. Hvis vi for eksempel bruker databasen til en skoleapplikasjon, må vi oppdatere dataene hvis en student overføres til en ny by. Vi kan raskt oppdatere en rad i hvilken som helst tabell i databasen vår ved hjelp av OPPDATER uttalelse av SQL i execute () -metoden. Vi må bruke WHERE-setningen til SQL som en betingelse for å velge den ansatte. Den grunnleggende syntaksen til OPPDATER uttalelse er vist nedenfor.

UPDATE table_name SET update_required WHERE Noen_tilstand

Se eksemplet nedenfor som en illustrasjon av UPDATE-setningen.

importere sqlite3 conn = sqlite3.koble til ("prøve.db ") print (" \ n [+] Vellykket koblet til databasen ") cur = conn.markør () utskrift ("\ n [+] Markøren er konfigurert vellykket") utskrift ("\ n [+] Data før oppdatering \ n") cur.utfør ("VELG * FRA ansatt") før = cur.fetchall () for i i før: print (i) cur.utfør ("UPDATE medarbeider SET-navn = 'Aditya' hvor navn = 'Sam'") skriver ut ("\ n [+] Data etter oppdatering \ n") cur.execute ("VELG * FRA ansatt") etter = cur.fetchall () for i in etter: print (i) cur.lukk () konn.begå () konn.Lukk()

Ovennevnte program vil oppdatere bordmedarbeideren. Det erstatter navnet Sam med navnet Aditya uansett hvor det vises i tabellen. Se bildet nedenfor for utdata fra programmet.

Konklusjon

Det er vår omfattende guide for å utføre noen grunnleggende SQLite-databaserelaterte oppgaver ved hjelp av Python. I den kommende opplæringen vil vi se noen flere avanserte bruksområder som bør ta deg til neste nivå av læring av SQLite-database for Python. Følg med på FOSSLinux.

Hvordan installere og spille Doom på Linux
Introduksjon til Doom Doom-serien stammer fra 90-tallet etter utgivelsen av den originale Doom. Det ble en øyeblikkelig suksess, og fra den tiden og u...
Vulkan for Linux-brukere
Med hver nye generasjon grafikkort ser vi spillutviklere skyve grensene for grafisk troskap og komme et skritt nærmere fotorealisme. Men til tross for...
OpenTTD vs Simutrans
Å lage din egen transportsimulering kan være morsom, avslappende og ekstremt fristende. Derfor må du sørge for at du prøver så mange spill som mulig f...