SQLite

Toegang krijgen tot SQLite vanuit Python

Toegang krijgen tot SQLite vanuit Python
Python is een populaire en robuuste programmeertaal die rijk is aan functies die het bruikbaar maken in een breed scala van gevallen, zoals datawetenschap, netwerken, IT-automatisering, penetratietesten en nog veel meer. Het heeft ook een eenvoudige syntaxis waarmee ontwikkelaars die andere programmeertalen kennen zich gemakkelijk kunnen aanpassen aan het gebruik van Python.Gegevens zijn overal en een breed scala aan softwaretoepassingen werken samen met gegevens met behulp van een databasebeheersysteem. SQLite is een van de meest populaire databasebeheersystemen in Python.

SQLite is een eenvoudige, krachtige, open-source en relationele database-engine die grote softwaretoepassingen en embedded systemen ondersteunt. SQLite is standalone en vereist minimale configuratie, waardoor het extra eenvoudig is in te stellen en uit te voeren met minimale tijd. Python wordt standaard geleverd met een SQLite-module (sqlite3), een zeer intuïtieve module voor het werken met SQLite-databases in Python.

In deze zelfstudie bekijken we hoe u Python kunt gebruiken om met SQLite-databases te werken. Van het tot stand brengen van een verbinding tot het maken van databases, het lezen van databases, het bijwerken en verwijderen van databases.

Laten we beginnen met het installeren van SQLite:

SQLite en Python installeren

Afhankelijk van uw Linux-distributie, kunt u het SQLite-archief downloaden van https://www.sqlite.org/download.html of gebruik de pakketbeheerder.

Om het op Debian te installeren:

sudo apt-get update
sudo apt-get install sqlite -y

Vervolgens zou u de nieuwste versie van Python3 moeten hebben geïnstalleerd. Python zou standaard al voorgeïnstalleerd moeten zijn in uw distributie.

SQLite-shell

De standaardmethode voor interactie met SQLite-databases is om de shell te gebruiken. Met de shell kunt u SQL-opdrachten inline of een verzameling uitvoeren om functies op databases uit te voeren.

Gebruik de opdracht om de SQLite-shell te starten:

$ sqlite

SQLite-versie 2.8.17 Voer in ".help" voor instructies

sqlite>

Dit zou de SQLite-shell moeten starten met een prompt waarmee u opdrachten kunt invoeren. Begin met het typen van de opdracht .help om de shell-help te bekijken.

sqlite> .helpen
.databases             Lijst met namen en bestanden van bijgevoegde databases
.dumpen ?TAFEL?…       Dump de database in een tekstformaat
.echo AAN|UIT           Opdrachtecho in- of uitschakelen
.afsluiten                  Dit programma afsluiten
.Explain ON|OFF        Zet de uitvoermodus die geschikt is voor EXPLAIN aan of uit.
.koptekst(en) AAN|UIT      Weergave van kopteksten in- of uitschakelen
.help                  Toon dit bericht
.indices TABEL         Toon namen van alle indices op TABLE
.modus MODUS             Stel de modus in op een van "regel(s)", "kolom(men)",
"insert", "list" of "html"
----------------------------------------------------------------------

Gebruik de om de SQLite-shell te verlaten .stop commando.

sqlite> .stoppen met

Er zijn andere functies en bewerkingen die u kunt gebruiken in de SQLite-shell. Om bijvoorbeeld alle databases te bekijken, kunt u de .database commando.

Ik raad je ten zeerste aan om te experimenteren met de SQLite-shell en vertrouwd te raken, omdat je hiermee begrijpt hoe je de SQLite3-module in Python gebruikt.

Verbinding maken met een database

Laten we nu Python- en SQLite3-modules gebruiken om te communiceren met SQLite-databases. Het is goed om te weten dat er andere Python-modules zijn die u kunt gebruiken om met SQLite te communiceren. SQLite3 is echter eenvoudig en wordt geleverd met Python.

Overweeg het onderstaande script om verbinding te maken met de SQLite-database:.

import sqlite3 van sqlite3 importfout
def connect_db(db_path):
verbinding = Geen probeer:
verbinding = sqlite3.verbinden(db_path)
print("Database succesvol verbonden")
behalve Fout als e:
print(f"Er is een fout opgetreden: e")
retourverbinding
connect_db("/home/gebruiker/Desktop/demo.sqliet")

We beginnen met het importeren van de SQLite- en Error-modules.
In regel 3 maken we een connect_db() functie die het pad van de database als argument neemt.
Het volgende deel bevat een try/error-blok. Het eerste deel neemt het databasepad als argument en brengt een verbinding tot stand. Let op, in SQLite, als de opgegeven database niet bestaat, wordt deze automatisch gemaakt.
Het foutblok probeert uitzonderingen op te vangen en drukt ze af naar de gebruiker.
In de laatste regel noemen we de functie connect_db en geven we het pad door naar de database die we willen gebruiken of maken.

OPMERKING: Als u een geheugendatabase wilt maken in plaats van een schijf, kunt u :memory specificeren in de connect obj.

sqlite3.verbinden(“:geheugen”)

SQLite-tabel maken

In SQLite kunnen we de SQL-shell gebruiken om tabellen te maken met behulp van de CREATE TABLE Query. De algemene syntaxis is als:

CREATE TABLE databasenaam.tafel naam (
kolomnaam gegevenstype PRIMARY KEY(kolom(men),
kolom2_naam gegevenstype,
... kolomN_naam gegevenstype,
);

Ik zal niet duiken in het maken van tabellen met behulp van SQLite-shell, omdat onze primaire focus Python is. Bekijk de SQL Lite-documentatie uit de onderstaande bron voor meer informatie. Om nu de Python- en sqlite3-modules te gebruiken om databasetabellen te maken, moeten we het cursorobject gebruiken en de functies van SQL-query's uitvoeren. Overweeg de onderstaande code:

import sqlite3 van sqlite3 importfout
def connect_db(db_path):
verbinding = Geen
proberen:
verbinding = sqlite3.verbinden(db_path)
print("Database succesvol verbonden")
behalve Fout als e:
print(f"Er is een fout opgetreden: e")
retourverbinding def run_query (verbinding, sql_query):
cursor = verbinding.cursor()
proberen:
cursor.uitvoeren(sql_query)
verbinding.plegen()
print("SQL-query succesvol uitgevoerd... [OK]")
behalve Fout als e:
print(f" Opvraging mislukt... e")
vraag = """
MAAK TABEL ALS NIET BESTAAT toont (
id INTEGER PRIMAIRE SLEUTEL AUTOINCREMENT,
naam TEKST NIET NULL,
jaar INTGER,
genre TEKST,
land TEKST
);
"""
run_query(connection=connect_db("/home/user/Desktop/sql.sqlite")), sql_query=query)

Laten we nu bespreken wat de bovenstaande code doet - zoek de eerste functie die hierboven is uitgelegd (raadpleeg). In de tweede functie, maken, geven we de verbinding en de uit te voeren query door als de parameters. De volgende regels creëren een cursorobject dat we zullen gebruiken om de methode execute aan te roepen. Zoals hierboven vermeld, roepen de volgende regels het object van de cursor aan om de methode uit te voeren en roepen de query op als de parameter. Het blok drukt ook een bericht af bij een succesvolle uitvoering van de query. Zodra de query succesvol is uitgevoerd, vertellen we SQLite om de commit-methode te gebruiken om de wijzigingen in de database op te slaan. Het uitzonderingsblok vangt uitzonderingen op en drukt het foutbericht af naar de gebruiker. Ten slotte maken we de query om uit te voeren met behulp van eenvoudige SQLite-syntaxis.

SQLite Records invoegen

Om gegevens aan de SQLite-database toe te voegen, kunnen we een duik nemen in de functie run_query() die we hebben gebruikt om te maken, omdat deze elke SQLite-query kan uitvoeren die we eraan doorgeven. We gebruiken echter de INSERT INTO-query om gegevens aan de tabel toe te voegen.

Beschouw het onderstaande blok:

add_shows = """
INVOEREN IN
shows (id, naam, jaar, genre, land)
WAARDEN
( "101", "Brooklyn Nine-Nine", "2013", "komedie", "VS"),
("201", "Star-Trek: Discovery", "2017", "Scifi", "VS"),
("301", "Star-Trek: Picard", "2020", "Scifi", "VS");
""" run_query(connection=connect_db("/home/user/Desktop/sql.sqlite")), sql_query=add_shows)

We moeten nu de functie run_query aanroepen en de pass de query add_shows toevoegen om gegevens in de shows-tabel in te voegen. Zorg ervoor dat de tabel waarin u gegevens invoegt, bestaat om een ​​fout te voorkomen.

SQLite Records verwijderen

U kunt ook de functie run_query() gebruiken om records uit de opgegeven tabel te verwijderen. Het enige dat u nodig hebt, is om de query in te stellen als DELETE FROM.

Overweeg de volgende subquery:

remove = "VERWIJDEREN VAN toont WHERE name = 'Brooklyn Nine-Nine'" run_query(connection=connect_db("/home/user/Deskop/sql.sqlite")), sql_query=verwijder)

De bovenstaande zoekopdracht verwijdert de show "Brooklyn Nine-Nine" uit de showtabel.

Conclusie

Deze tutorial heeft je geleerd hoe je Python gebruikt voor toegang tot en interactie met SQLite-databases. Van wat je van deze tutorial hebt geleerd, kun je nu functies maken, verbinding maken met SQLite-databases, tabellen maken, gegevens invoegen en ze verwijderen. Hoewel dit een startersgids is voor het werken met SQLite in Python, zou het u op weg moeten helpen om andere technologieën te leren, zoals SQLAlchemy en dergelijke.

Beste gameconsole-emulators voor Linux
Dit artikel bevat een lijst van populaire emulatiesoftware voor gameconsoles die beschikbaar is voor Linux. Emulatie is een softwarecompatibiliteitsla...
Beste Linux-distributies voor gaming in 2021
Het Linux-besturingssysteem heeft een lange weg afgelegd van zijn oorspronkelijke, eenvoudige, servergebaseerde uiterlijk. Dit besturingssysteem is de...
Hoe u uw gamesessie op Linux kunt vastleggen en streamen
In het verleden werd het spelen van games alleen als een hobby beschouwd, maar met de tijd zag de game-industrie een enorme groei in termen van techno...