Programmering

Grunderna för att arbeta med SQLite-databasen i Python

Grunderna för att arbeta med SQLite-databasen i Python

En databas är en av de mest användbara och populära filerna för lagring av data. de kan användas för att lagra alla typer av data, inklusive text, siffror, bilder, binära data, filer, etc. SQLite är ett relationsdatabashanteringssystem baserat på SQL-språket. Det är ett C-bibliotek och det ger ett API för att arbeta med andra programmeringsspråk, inklusive Python. Det kräver inte att en separat serverprocess körs efter behov i stora databasmotorer som MySQL och Postgresql.

Det är snabbt och lätt, och hela databasen lagras i en enda diskfil, vilket gör den bärbar som CSV eller andra datalagringsfiler. Många applikationer använder SQLite för intern datalagring, främst i miljöer som mobila enheter eller små applikationer.

SQLite-databas för Python

Låt oss ta ett djupdyk i SQLite med python-programmeringsspråket. I den här handledningen lär vi oss fördelarna med att använda SQLite, grunderna i python sqlite3-modulen, skapa en tabell i en databas, infoga data i tabellen, fråga data från tabellen och uppdatera data i tabellen.

Fördelar med att använda SQLite

De största fördelarna med att använda SQLite är:

SQLite används också i Google Chrome för att lagra kakor, användardata och annan viktig information, inklusive användarlösenord. Android OS använder också SQLite som sin primära databasmotor för att lagra data.

Python SQLite3-modul

För att använda SQLite behöver vi Python för att installeras i vårt system. Om du inte redan har Python installerat i ditt system kan du hänvisa till vår steg-för-steg-guide för att installera Python i Linux. Vi kan använda SQLite i Python med hjälp av sqlite3 modul tillgänglig i Pythons standardbibliotek. Gerhard Häring skrev sqlite3-modulen; det ger ett SQL-gränssnitt som överensstämmer med DB-API 2.0. Det levereras förinstallerat med Python-standardbiblioteket, så vi behöver inte oroa oss för ytterligare installation.

Skapa anslutning till en databas

Det första steget när du arbetar med SQLite i Python är att skapa en anslutning till en databas. Vi kan göra detta genom att använda metoden connect () för sqlite3 för att skapa en anslutning. Titta på följande kod för ett exempel. Du kan helt enkelt kopiera koden till en IDE eller en textredigerare och köra den. Om du har problem med att välja IDE för Python kan du hänvisa till vår guide för att jämföra bästa python IDE. Det rekommenderas att skriva om koden igen i din IDE, och om du vill kopiera koden, kontrollera syntaxen med koden som finns här.

# importera nödvändiga moduler importera sqlite3 # ställa in anslutningen med databasen conn = sqlite3.anslut ("prov.db ") utskrift (" Framgångsrikt ansluten till databasen ") # stänger anslutningsanslutningen.stänga()

Ovanstående program skapar en anslutning till SQLite-databasfilen “exempel.db.”Det kommer att ge följande utdata i terminalen.

Låt oss se vad som händer i ovanstående kod. I första raden har vi importerat sqlite3-modulen, vilket hjälper oss att arbeta med SQLite-databaser i Python.

I den andra raden skapar vi en anslutning med en SQLite-databasfil med namnet “sample.db ”med hjälp av ansluta() fungera. Funktionen connect () accepterar sökvägen till databasfilen som ett argument. Om filen inte finns i den angivna sökvägen skapar den i sig en ny databasfil med det angivna namnet i den sökvägen. Funktionen connect () returnerar ett databasobjekt i vårt program; vi lagrar det returnerade objektet i en variabel med namnet anslutning.

Den tredje raden i vårt program är enkel skriva ut uttalande för att visa ett meddelande om en lyckad anslutning. Den sista raden i programmet bryter anslutningen till databasen med hjälp av stänga() anslutningsobjektets funktion.

I det föregående exemplet har vi skapat databasen till disken, men vi kan också skapa en databas i det primära minnes-RAM-minnet. Att skapa en databas i RAM-minnet gör körningen av databasen snabbare än vanligt. Databasen kommer ändå att skapas tillfälligt och när programkörningen slutar kommer databasen att raderas från minnet. Vi kan skapa en databas i minnet genom att ange det specifika namnet: minne: som ett argument till ansluta() fungera. Se nedanstående program som en illustration.

importera sqlite3 conn = sqlite3.connect (": memory:") print ("\ n [+] Databasen har skapats i minnet") connect.stänga()

Ovanstående program kommer att skapa en databas i RAM-minnet, och vi kan använda den för att utföra nästan alla uppgifter vi kan göra med databaser som skapats på disken. Den här metoden är användbar när du skapar en tillfällig virtuell databas av någon anledning.

SQLite3-markören

Amarkören objektet är vårt gränssnitt till databasen, som gör det möjligt att köra allaSQL-fråga på databasen. För att köra SQL-skript med sqlite3 måste vi skapa ett markörobjekt. För att skapa ett markörobjekt måste vi använda markör () metod för förbindelse objekt. Vi kan skapa ett markörobjekt i vår databas med följande kod.

# importera nödvändiga moduler importera sqlite3 # ställa in anslutningen till databasen conn = sqlite3.anslut ("prov.db ") print (" \ n [+] Uppkopplad till databasen ") cur = conn.markör () utskrift ("\ n [+] Markören har konfigurerats framgångsrikt") cur.stäng () # stänga anslutningen anslut.stänga()

När programmet körs visas utdata som visas i bilden nedan.

Låt oss se hur ovanstående kod fungerar. I ovanstående kod skapar den första, andra, tredje en anslutning till databasen, som visas tidigare. I den fjärde raden har vi använt markör () metod för anslutningsobjektet för att skapa ett markörobjekt och lagra det returnerade markörobjektet i en variabel med namnet “cur”. Den femte raden är en general skriva ut() påstående. På den sjätte raden förstörde vi markörobjektet från minnet med hjälp av stänga() markörobjektets metod.

SQLite-datatyper

Innan vi fortsätter, låt oss först förstå SQLite-datatyper. SQLite-databasmotorn har flera lagringsklasser för att lagra många typer av data, inklusive text, binär data, heltal osv. Varje värde har en av följande datatyper.

SQLite DataTypes:

Jämförelse av SQLite- och Python-datatyper

Det kommer att vara många gånger när vi behöver använda pythondatatyper för att lagra vissa SQL-data och utföra vissa aktiviteter. För en sådan sak att göra måste vi veta vilka SQL-datatyper som är relaterade till vilka python-datatyper.

Följande Python-typer liknar SQLite-datatyperna:

Pythontyp SQLite-typ
Ingen NULL
int HELTAL
flyta VERKLIG
str TEXT
byte KLICK

Skapa en tabell med SQLite

För att skapa en tabell med SQLite måste vi använda SKAPA BORD uttalande av SQL i Kör() markörobjektets metod. Den grundläggande syntaxen för CREATE TABLE-satsen i SQL visas nedan:

SKAPA TABELL tabellnamn (kolumnnamn Datatypsbegränsning, ... kolumnnamn Datatypsbegränsning);

För att använda ovanstående SQLite-uttalande i Python måste vi köra nedanstående exempelprogram. Det skapar en tabell med namnet anställd i vår databas.

importera sqlite3 conn = sqlite3.anslut ("prov.db ") print (" \ n [+] Uppkopplad till databasen ") cur = conn.markör () utskrift ("\ n [+] Markören har konfigurerats framgångsrikt") table = cur.execute ("" "SKAPA TABELL anställd (id INT PRIMÄR NYCKEL, namn CHAR (25), lön CHAR (25), joining_date DATE);" "") print ("\ n [+] Tabellen har skapats framgångsrikt") byracka.stäng () anslut.stänga()

I ovanstående program skapade vi en anställd tabell med attributen id, namn, lön, och Inträdesdatum. Den här tabellen kan nu användas för att lagra data eller fråga data enligt krav. Du ser följande utdata i terminalen.

I ovanstående kod har vi använt Kör() metod för markörobjektet för att köra SQL-kommandot för att skapa en tabell med givna kolumner.

Infoga data i en tabell

Vi har skapat en tabell i vår SQLite-databas. Låt oss nu infoga lite data i den med hjälp av SQL. Den grundläggande syntaksen för INSERT-uttalandet för SQL är:

INSÄTTA I tabellnamn (kolumnnamn_1, kolumnnamn_2,…) VÄRDEN (kolumner_data_1, kolumner_data_1, ...)

I ovanstående syntax är tabellnamn är namnet på tabellen där vi vill infoga våra data. De kolumnnamn_1, kolumnnamn_2,.. är namnet på de kolumner som finns i tabellen. De column_data_1, column_data_2,… är de data vi vill infoga i de angivna kolumnerna.

Låt oss se en praktisk demo för att infoga data i en tabell. Vi kommer att lägga till lite data i vår tabell med namnet anställd med SQLite och Python. Kör nedanstående kod för att infoga data i tabellen.

importera sqlite3 conn = sqlite3.anslut ("prov.db ") print (" \ n [+] Uppkopplad till databasen ") cur = conn.markör () utskrift ("\ n [+] Markören har konfigurerats framgångsrikt") cur.execute ("INSERT INTO employee (id, name, løn, joining_date) VALUES (1001, 'David', 50000, '1-08-2019')") cur.execute ("INSERT INTO employee (id, name, løn, joining_date) VALUES (1002, 'Sam', 80000, '3-09-2020')") cur.execute ("INSERT INTO employee (id, name, løn, joining_date) VALUES (1003, 'Roshan', 90000, '8-08-2020')") cur.execute ("INSERT INTO employee (id, name, løn, joining_date) VALUES (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 har infogats framgångsrikt" ) cur.stäng () anslut.begå () ansluta.stänga()

Ovanstående kod kommer att infoga en del data i anställd tabell som vi har skapat tidigare. Låt oss se vad som händer i koden. De första fem raderna används för att skapa en anslutning till databasen och ställa in markören. I raderna från sex till tio måste vi använda kommandot INSERT för SQL för att infoga data i medarbetartabellen. Vi måste använda kolumnnamnet på medarbetartabellen i den första parentesen och data för kolumnerna i den andra parentesen. Vi behöver bara använda begå() metod för anslutningsobjektet innan du kopplar från databasen, annars sparas inte ändringarna i databasen.

Fråga efter data från en tabell

Vi har lärt oss hur man infogar data i en SQLite-databas, men vi måste också fråga data från databasen som ska användas av vårt program eller användare. För att fråga data kan vi använda SELECT-satsen för SQL under metoden execute (). Den grundläggande syntaxen för SELECT-uttalandet visas nedan.

VÄLJ kolumnnamn FRÅN tabellnamn

De kolumnnamn i syntaxen kommer att vara namnet på kolumner vi behöver fråga. Dessa kolumner måste finnas i tabellen vars namn anges i stället för tabellnamn. Låt oss nu se hur vi kan använda denna syntax för att fråga data från vår anställdstabell. Kör bara följande kod för att se en illustration.

importera sqlite3 conn = sqlite3.anslut ("prov.db ") print (" \ n [+] Uppkopplad till databasen ") cur = conn.markör () utskrift ("\ n [+] Markören har ställts in") cur.exekvera ("VÄLJ id, namn FRÅ anställd") tabell = cur.fetchall () för i i tabell: skriv ut (i) cur.stäng () anslut.begå () ansluta.stänga()

Utmatningen från ovanstående program visas nedan.

Ovanstående program kommer att fråga medarbetartabellen för kolumnerna id och namn. Vi kan samla in data som har returnerats med hjälp av fetchall () markörobjektets metod. De returnerade uppgifterna är en pythonlista som innehåller de rader vi frågade. För att visa enskilda rader måste vi använda Python for loop för att itera över listan; du kan läsa mer om Python for loop här. Låt oss nu se några användbara saker som vi kan utföra med SELECT-uttalandet.

Hämta alla data från en tabell

Ibland finns det behov av att hämta alla poster från en databastabell. För att få alla poster med SELECT-satsen för SQL måste vi följa den grundläggande syntaxen nedan:

VÄLJ * FRÅN tabellnamn

De * symbolen kommer att användas för att beteckna alla kolumner, och genom att använda detta kan vi fråga alla kolumnerna i en SQLite-tabell. För att hämta alla poster från tabellmedarbetaren som vi har skapat tidigare måste vi köra följande kod.

importera sqlite3 conn = sqlite3.anslut ("prov.db ") print (" \ n [+] Uppkopplad till databasen ") cur = conn.markör () utskrift ("\ n [+] Markören har ställts in") cur.exekvera ("VÄLJ * FRÅN anställd") rader = cur.fetchall () print ("\ n [+] Fråga om data \ n") för i i rader: print (i) cur.stäng () anslut.begå () ansluta.stänga()

Ovanstående kod visar alla poster som finns i medarbetartabellen som vi har skapat tidigare. Programmets resultat kommer att vara ungefär så här:

Frågedata i specifik ordning

Ibland behöver vi fråga data från en tabell i en bestämd ordning som stigande eller fallande. Vi kan använda SELECT-uttalandet med nyckelordet ORDER BY för att visa data i ordning. Grundsyntaxen för nyckelordet ORDER BY i SELECT-uttalandet är:

VÄLJ kolumnnamn FRÅN bordsnamn BESTÄLL EFTER kolumnnamn

Låt oss se hur vi kan använda nyckelordet ORDER BY för att visa data från anställdens tabellordning med namnet.

importera sqlite3 conn = sqlite3.anslut ("prov.db ") print (" \ n [+] Uppkopplad till databasen ") cur = conn.markör () utskrift ("\ n [+] Markören har ställts in") cur.exekvera ("VÄLJ * FRÅN anställd BESTÄLL EFTER namn") tabell = cur.fetchall () för i i tabell: skriv ut (i) cur.stäng () anslut.begå () ansluta.stänga()

Du kan se utdata från ovanstående kod, som visas nedan.

Du kanske märker i utdata att data har visats i stigande ordning i kolumnen namn.

Uppdatera poster i en tabell

Det finns många situationer när vi vill uppdatera tabellen över våra databaser. Om vi ​​till exempel använder databasen för en skolansökan måste vi uppdatera uppgifterna om en elev överförs till en ny stad. Vi kan snabbt uppdatera en rad i vilken tabell som helst i vår databas med hjälp av UPPDATERING uttalande av SQL i execute () -metoden. Vi måste använda WHERE-klausulen om SQL som ett villkor för att välja den anställde. Den grundläggande syntaxen för UPPDATERING uttalande visas nedan.

UPPDATERA tabellnamn SET update_required VAR Någon_condition

Se exemplet nedan som en illustration av UPDATE-uttalandet.

importera sqlite3 conn = sqlite3.anslut ("prov.db ") print (" \ n [+] Uppkopplad till databasen ") cur = conn.markör () utskrift ("\ n [+] Markören har konfigurerats framgångsrikt") utskrift ("\ n [+] Data före uppdatering \ n") cur.execute ("VÄLJ * FRÅN anställd") före = cur.fetchall () för i innan: skriv ut (i) cur.exekvera ("UPPDATERA anställd SET-namn = 'Aditya' där namn = 'Sam'") skriv ut ("\ n [+] Data efter uppdatering \ n") cur.execute ("VÄLJ * FRÅN anställd") efter = cur.fetchall () för i efter: skriv ut (i) cur.stäng () anslut.begå () ansluta.stänga()

Ovanstående program uppdaterar tabellanställd. Det ersätter namnet Sam med namnet Aditya vart det än visas i tabellen. Se bilden nedan för utdata från programmet.

Slutsats

Det är vår omfattande guide för att utföra några grundläggande SQLite-databasrelaterade uppgifter med Python. I den kommande handledningen kommer vi att se några mer avancerade användningar som ska ta dig till nästa nivå av inlärning av SQLite-databas för Python. Håll dig uppdaterad om FOSSLinux.

Mus AppyMouse styrplatta och muspekare för Windows-surfplattor
AppyMouse styrplatta och muspekare för Windows-surfplattor
Surfplattanvändare saknar ofta muspekaren, särskilt när de brukar använda bärbara datorer. Pekskärmen Smartphones och surfplattor har många fördelar o...
Mus Mellan musknappen fungerar inte i Windows 10
Mellan musknappen fungerar inte i Windows 10
De mittknappen hjälper dig att bläddra igenom långa webbsidor och skärmar med mycket data. Om det slutar, kommer du sluta använda tangentbordet för at...
Mus Hur man ändrar vänster och höger musknapp på Windows 10 PC
Hur man ändrar vänster och höger musknapp på Windows 10 PC
Det är en hel norm att alla datormusenheter är ergonomiskt utformade för högerhänta användare. Men det finns musenheter tillgängliga som är speciellt ...