Python - Datenbanken und SQL

Die Programmiersprache Python verfügt über leistungsstarke Funktionen für die Datenbankprogrammierung. Python unterstützt verschiedene Datenbanken wie SQLite, MySQL, Oracle, Sybase, PostgreSQL usw. Python unterstützt auch DDL (Data Definition Language), DML (Data Manipulation Language) und Data Query Statements. Der Python-Standard für Datenbankschnittstellen ist die Python-DB-API. Die meisten Python-Datenbankschnittstellen entsprechen diesem Standard.

Hier ist die Liste der verfügbaren Python-Datenbankschnittstellen: Python-Datenbankschnittstellen und APIs . Sie müssen für jede Datenbank, auf die Sie zugreifen müssen, ein separates DB-API-Modul herunterladen.

In diesem Kapitel werden wir die Verwendung der SQLite-Datenbank in der Programmiersprache Python sehen. Dies erfolgt mithilfe des in Python integrierten SQLite3-Moduls. Sie sollten zuerst ein Verbindungsobjekt erstellen, das die Datenbank darstellt, und dann einige Cursorobjekte erstellen, um SQL-Anweisungen auszuführen.

Verbindung zur Datenbank herstellen

Der folgende Python-Code zeigt, wie eine Verbindung zu einer vorhandenen Datenbank hergestellt wird. Wenn die Datenbank nicht vorhanden ist, wird sie erstellt und schließlich wird ein Datenbankobjekt zurückgegeben.

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

Hier können Sie auch den Datenbanknamen als speziellen Namen angeben :memory:um eine Datenbank im RAM zu erstellen. Lassen Sie uns nun das obige Programm ausführen, um unsere Datenbank zu erstellentest.dbim aktuellen Verzeichnis. Sie können Ihren Pfad gemäß Ihren Anforderungen ändern. Behalten Sie den obigen Code in der Datei sqlite.py und führen Sie ihn wie unten gezeigt aus. Wenn die Datenbank erfolgreich erstellt wurde, wird die folgende Meldung angezeigt.

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

Erstellen Sie eine Tabelle

Das folgende Python-Programm wird verwendet, um eine Tabelle in der zuvor erstellten Datenbank zu erstellen.

#!/usr/bin/python
import sqlite3
conn = sqlite3.connect('test.db')
print "Opened database successfully";
conn.execute('''CREATE TABLE COMPANY
         (ID INT PRIMARY KEY     NOT NULL,
         NAME           TEXT    NOT NULL,
         AGE            INT     NOT NULL,
         ADDRESS        CHAR(50),
         SALARY         REAL);''')
print "Table created successfully";
conn.close()

Wenn das obige Programm ausgeführt wird, wird die COMPANY-Tabelle in Ihrem erstellt test.db und es werden die folgenden Meldungen angezeigt -

Opened database successfully
Table created successfully

Operation einfügen

Das folgende Python-Programm zeigt, wie Datensätze in der im obigen Beispiel erstellten COMPANY-Tabelle erstellt werden.

#!/usr/bin/python
import sqlite3
conn = sqlite3.connect('test.db')
print "Opened database successfully";
conn.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \
      VALUES (1, 'Paul', 32, 'California', 20000.00 )");
conn.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \
      VALUES (2, 'Allen', 25, 'Texas', 15000.00 )");
conn.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \
      VALUES (3, 'Teddy', 23, 'Norway', 20000.00 )");
conn.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \
      VALUES (4, 'Mark', 25, 'Rich-Mond ', 65000.00 )");
conn.commit()
print "Records created successfully";
conn.close()

Wenn das obige Programm ausgeführt wird, werden die angegebenen Datensätze in der COMPANY-Tabelle erstellt und die folgenden zwei Zeilen angezeigt:

Opened database successfully
Records created successfully

Wählen Sie Operation

Das folgende Python-Programm zeigt, wie Datensätze aus der im obigen Beispiel erstellten COMPANY-Tabelle abgerufen und angezeigt werden.

#!/usr/bin/python
import sqlite3
conn = sqlite3.connect('test.db')
print "Opened database successfully";
cursor = conn.execute("SELECT id, name, address, salary from COMPANY")
for row in cursor:
   print "ID = ", row[0]
   print "NAME = ", row[1]
   print "ADDRESS = ", row[2]
   print "SALARY = ", row[3], "\n"
print "Operation done successfully";
conn.close()

Wenn das obige Programm ausgeführt wird, wird das folgende Ergebnis erzeugt.

Opened database successfully
ID = 1
NAME = Paul
ADDRESS = California
SALARY = 20000.0
ID = 2
NAME = Allen
ADDRESS = Texas
SALARY = 15000.0
ID = 3
NAME = Teddy
ADDRESS = Norway
SALARY = 20000.0
ID = 4
NAME = Mark
ADDRESS = Rich-Mond
SALARY = 65000.0
Operation done successfully

Vorgang aktualisieren

Der folgende Python-Code zeigt, wie Sie mit der UPDATE-Anweisung einen Datensatz aktualisieren und anschließend die aktualisierten Datensätze aus der COMPANY-Tabelle abrufen und anzeigen.

#!/usr/bin/python
import sqlite3
conn = sqlite3.connect('test.db')
print "Opened database successfully";
conn.execute("UPDATE COMPANY set SALARY = 25000.00 where ID = 1")
conn.commit
print "Total number of rows updated :", conn.total_changes
cursor = conn.execute("SELECT id, name, address, salary from COMPANY")
for row in cursor:
   print "ID = ", row[0]
   print "NAME = ", row[1]
   print "ADDRESS = ", row[2]
   print "SALARY = ", row[3], "\n"
print "Operation done successfully";
conn.close()

Wenn das obige Programm ausgeführt wird, wird das folgende Ergebnis erzeugt.

Opened database successfully
Total number of rows updated : 1
ID = 1
NAME = Paul
ADDRESS = California
SALARY = 25000.0
ID = 2
NAME = Allen
ADDRESS = Texas
SALARY = 15000.0
ID = 3
NAME = Teddy
ADDRESS = Norway
SALARY = 20000.0
ID = 4
NAME = Mark
ADDRESS = Rich-Mond
SALARY = 65000.0
Operation done successfully

Vorgang löschen

Der folgende Python-Code zeigt, wie Sie mit der DELETE-Anweisung einen Datensatz löschen und dann die verbleibenden Datensätze aus der COMPANY-Tabelle abrufen und anzeigen.

#!/usr/bin/python
import sqlite3
conn = sqlite3.connect('test.db')
print "Opened database successfully";
conn.execute("DELETE from COMPANY where ID = 2;")
conn.commit()
print "Total number of rows deleted :", conn.total_changes
cursor = conn.execute("SELECT id, name, address, salary from COMPANY")
for row in cursor:
   print "ID = ", row[0]
   print "NAME = ", row[1]
   print "ADDRESS = ", row[2]
   print "SALARY = ", row[3], "\n"
print "Operation done successfully";
conn.close()

Wenn das obige Programm ausgeführt wird, wird das folgende Ergebnis erzeugt.

Opened database successfully
Total number of rows deleted : 1
ID = 1
NAME = Paul
ADDRESS = California
SALARY = 20000.0
ID = 3
NAME = Teddy
ADDRESS = Norway
SALARY = 20000.0
ID = 4
NAME = Mark
ADDRESS = Rich-Mond
SALARY = 65000.0
Operation done successfully