advertenties

In dit hoofdstuk leert u hoe u SQLite kunt gebruiken in Python programma ‘ s.

installatie

SQLite3 kan worden geïntegreerd met Python met behulp van sqlite3 module, die is geschreven door Gerhard Haring. Het biedt een SQL-interface die voldoet aan de DB-API 2.0-specificatie die wordt beschreven door PEP 249. U hoeft deze module niet apart te installeren omdat het standaard wordt verzonden samen met Python versie 2.5.x verder.,

om de sqlite3-module te gebruiken, moet u eerst een verbindingsobject maken dat de database vertegenwoordigt en dan kunt u optioneel een cursor-object maken, dat u zal helpen bij het uitvoeren van alle SQL-statements.

Python sqlite3 module API ‘ s

volgende zijn belangrijke sqlite3 module routines, die kunnen voldoen aan uw eis om te werken met SQLite database van uw Python programma. Als u op zoek bent naar een meer geavanceerde applicatie, dan kunt u kijken naar de officiële documentatie Python sqlite3 module.

Sr.No., API & Description
1

sqlite3.connect (database )

deze API opent een verbinding met het SQLITE-databasebestand. U kunt “:memory: “gebruiken om een database-verbinding te openen met een database die zich in RAM bevindt in plaats van op schijf. Als de database met succes wordt geopend, wordt een verbindingsobject geretourneerd.

wanneer een database wordt benaderd door meerdere verbindingen en een van de processen de database wijzigt, wordt de SQLite-database vergrendeld totdat die transactie is vastgelegd., De timeout parameter geeft aan hoe lang de verbinding moet wachten tot de vergrendeling verdwijnt totdat er een uitzondering wordt gemaakt. De standaard voor de timeout parameter is 5.0 (vijf seconden).

als de opgegeven databasenaam niet bestaat, zal deze aanroep de database aanmaken. U kunt ook een bestandsnaam opgeven met het vereiste pad als u een database ergens anders wilt aanmaken, behalve in de huidige map.

2

verbinding.cursor ()

Deze routine maakt een cursor aan die gebruikt zal worden tijdens het programmeren van je database met Python., Deze methode accepteert een enkele optionele parameter cursorklasse. Indien opgegeven, moet dit een aangepaste cursor klasse zijn die sqlite3 uitbreidt.Cursor.

3

cursor.execute(SQL )

Deze routine voert een SQL-statement uit. De SQL statement kan worden geparametreerd (dat wil zeggen placeholders in plaats van SQL literals). De sqlite3 module ondersteunt twee soorten plaatsaanduidingen: vraagtekens en benoemde plaatsaanduidingen (benoemde stijl).

bijvoorbeeld-cursor.uitvoeren (“insert into people values (?, ?) “, (who, age))

4

verbinding.,uitvoeren(SQL )

Deze routine is een sneltoets van de bovenstaande methode uitvoeren die door het cursor-object wordt geleverd en het creëert een tussenliggende cursor-object door de cursor-methode aan te roepen, en roept vervolgens de cursor-methode uitvoeren aan met de opgegeven parameters.

5

cursor.executemany (SQL, seq_of_parameters)

Deze routine voert een SQL-opdracht uit tegen alle parametersequenties of toewijzingen die in de SQL-reeks worden gevonden.

6

verbinding.,executemany(sql)

Deze routine is een snelkoppeling die een tussenliggende cursor-object maakt door de cursor-methode aan te roepen en vervolgens de cursor aan te roepen.s executemany methode met de opgegeven parameters.

7

cursor.executescript (sql_script)

Deze routine voert meerdere SQL-statements tegelijk uit in de vorm van een script. Het geeft eerst een COMMIT statement uit, en voert dan het SQL script uit dat het krijgt als parameter. Alle SQL statements moeten gescheiden worden door een puntkomma (;).

8

verbinding.,executescript (sql_script)

Deze routine is een snelkoppeling die een tussenliggende cursor-object aanmaakt door de cursor-methode aan te roepen, en vervolgens de executescript-methode van de cursor aan te roepen met de opgegeven parameters.

9

verbinding.total_changes ()

Deze routine geeft het totale aantal databaserijen terug die zijn gewijzigd, ingevoegd of verwijderd sinds de databaseverbinding werd geopend.

10

verbinding.commit ()

Deze methode legt de huidige transactie vast., Als je deze methode niet aanroept, is alles wat je gedaan hebt sinds de laatste aanroep voor commit() niet zichtbaar vanaf andere database verbindingen.

11

verbinding.rollback()

deze methode rolt alle wijzigingen terug naar de database sinds de laatste aanroep om te committen().

12

verbinding.close ()

Deze methode sluit de database-verbinding. Merk op dat dit niet automatisch commit () aanroept. Als je gewoon je database verbinding sluit zonder eerst commit() aan te roepen, zullen je wijzigingen verloren gaan!

13

cursor.,fetchone ()

deze methode haalt de volgende rij van een query resultaat set, retourneert een enkele reeks, of Geen wanneer er geen gegevens meer beschikbaar zijn.

14

cursor.fetchmany ()

Deze routine haalt de volgende reeks rijen van een query-resultaat op en geeft een lijst terug. Een lege lijst wordt geretourneerd als er geen rijen meer beschikbaar zijn. De methode probeert zoveel rijen op te halen als aangegeven door de Parameter Grootte.

15

cursor.fetchall ()

Deze routine haalt alle (resterende) rijen van een query-resultaat op en geeft een lijst terug., Een lege lijst wordt geretourneerd als er geen rijen beschikbaar zijn.

verbinding maken met Database

volgende Python-code laat zien hoe verbinding te maken met een bestaande database. Als de database niet bestaat, wordt deze aangemaakt en wordt uiteindelijk een database object geretourneerd.

#!/usr/bin/pythonimport sqlite3conn = sqlite3.connect('test.db')print "Opened database successfully";

Hier kunt u ook databasenaam opgeven als de speciale naam :memory: om een database in RAM aan te maken. Laten we nu het bovenstaande programma uitvoeren om onze database-test te maken.db in de huidige map. U kunt uw pad veranderen volgens uw vereiste., Houd de bovenstaande code in sqlite.py bestand en voer het uit zoals hieronder getoond. Als de database met succes is gemaakt, dan zal het volgende bericht weer te geven.

$chmod +x sqlite.py$./sqlite.pyOpen database successfully

Maak een tabel

het volgende Python-programma zal worden gebruikt om een tabel te maken in de eerder aangemaakte database.

wanneer het bovenstaande programma wordt uitgevoerd, zal het de BEDRIJFSTABEL aanmaken in uw test.,db en het zal de volgende berichten weergeven –

Opened database successfullyTable created successfully

INSERT operatie

het volgende Python-programma laat zien hoe records te maken in de BEDRIJFSTABEL gemaakt in het bovenstaande voorbeeld.

wanneer het bovenstaande programma wordt uitgevoerd, zal het de gegeven records in de BEDRIJFSTABEL aanmaken en zal het de volgende twee regels weergeven −

Opened database successfullyRecords created successfully

Selecteer operatie

het volgende Python-programma laat zien hoe records uit de BEDRIJFSTABEL worden opgehaald en weergegeven die in het bovenstaande voorbeeld is gemaakt.,

wanneer het bovenstaande programma wordt uitgevoerd, zal het het volgende resultaat opleveren.

UPDATE operatie

De volgende Python-code laat zien hoe u een update-statement kunt gebruiken om een record bij te werken en vervolgens de bijgewerkte records uit de BEDRIJFSTABEL op te halen en weer te geven.

wanneer het bovenstaande programma wordt uitgevoerd, zal het het volgende resultaat opleveren.

Opened database successfullyTotal number of rows updated : 1ID = 1NAME = PaulADDRESS = CaliforniaSALARY = 25000.0ID = 2NAME = AllenADDRESS = TexasSALARY = 15000.0ID = 3NAME = TeddyADDRESS = NorwaySALARY = 20000.0ID = 4NAME = MarkADDRESS = Rich-MondSALARY = 65000.0Operation done successfully

DELETE operatie

volgende Python-code laat zien hoe u delete statement gebruikt om een record te verwijderen en vervolgens de resterende records uit de BEDRIJFSTABEL op te halen en weer te geven.,

When the above program is executed, it will produce the following result.

Opened database successfullyTotal number of rows deleted : 1ID = 1NAME = PaulADDRESS = CaliforniaSALARY = 20000.0ID = 3NAME = TeddyADDRESS = NorwaySALARY = 20000.0ID = 4NAME = MarkADDRESS = Rich-MondSALARY = 65000.0Operation done successfully
Advertisements

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *