Überblick über die Python-Datenbankprogrammierung
Die Programmiersprache Python bietet umfangreiche APIs für die Datenbankprogrammierung. Im Folgenden werden einige der von Python unterstützten Schlüsseldatenbanken aufgeführt. In diesem Thema erfahren Sie mehr über Python Database Connection.
1. Oracle
2. MySQL
3. PostgreSQL
4. Teradata etc
Die Datenbank ist eine Sammlung von vorab festgelegten Informationen, die mühelos verwendet, verwaltet und überarbeitet werden können. Die Hauptmerkmale einer DB-API sind:
- Erstellen Sie eine Datenbankverbindung
- Arbeiten Sie an SQL-Anweisungen und gespeicherten Prozeduren
- Die Verbindung kann geschlossen werden
Vorteile von Python für die Datenbankprogrammierung
- Im Vergleich zu anderen Sprachen ist die Python-Programmierung schneller und einfacher.
- In Python werden obligatorische Operationen wie das Öffnen und Schließen der Datenbankverbindungen von Python selbst ausgeführt. Für alle anderen Programmiersprachen werden diese Arten von Vorgängen vom Entwickler speziell ausgeführt.
- Die Python-Datenbank-APIs unterstützen ein breites Spektrum von Datenbank-Setups, sodass das Herstellen einer Verbindung zu den Datenbanken erheblich vereinfacht wird.
Python DB-APIs
Datenbanken | Python DB-APIs |
MYSQL | MySQLdb |
PostgreSQL | psycopg, PyGresQL und pyPgSQL |
Orakel | dc_oracle2 und cx_oracle |
DB2 | Pydb2 |
Wichtige Schritte bei der Datenbankkonnektivität
Aus Sicht von Python gibt es vier Hauptschritte beim Herstellen einer Datenbankverbindung mit Python. sie sind wie folgt,
1. Erstellen Sie das Verbindungsobjekt
4. Beendigung der erstellten Verbindung
2. Um den Lese- und Schreibvorgang unterzubringen, deklarieren Sie einen Cursor
3. Datenbankinteraktionen
Verbindungsobjekte | |
Name | Beschreibung |
.schließen() | Schließt die Verbindung zur Datenbank |
.verpflichten() | Ausstehende Transaktionen mit der Datenbank festschreiben |
.rollback () | Mit dieser Transaktionsgenehmigung wird ein Rollback zum Beginn einer ausstehenden Transaktion durchgeführt |
.Mauszeiger() | Ein Objekt, das den Cursor darstellt, wird erstellt |
Python-Cursor-Objekte
1) .execute ()
Die in dieser Funktion erwähnte Sequel-Anweisung wird ausgeführt.
Syntax
execute(sql, (parameters))
Beispiel
import sqlite3con = sqlite3.connect("UserDB")cur = con.cursor()cur.execute(" select * from emp ")print cur.fetchone()
2) .executemany ()
Für alle aufgelisteten Parameter in der Sequenz wird die angegebene SQL-Anweisung ausgeführt
Syntax
executemany(sql, (parameters))
Beispiel
import sqlite3
def aplphabet_generator():
import string
for D in string.letters(:26):
yield (D, )
con = sqlite3.connect(":memory:")
cur = con.cursor()
cur.execute(" create table characters(
Aplphabet_Column ) ")
cur.executemany("insert into characters(
Aplhabet_Column ) values (?)", char_generator())
cur.execute(" select Aplhabet_Column from characters ")
print cur.fetchall()
3) .fetchone ()
Ruft eine Zeile einer Abfrageausgabe ab.
Beispiel
import MySQLdb as my
try:
db = my.connect(host="129.0.0.1",
user="admin",
passwd="admin",
db="emp"
)
cursor = db.cursor()
sql = "select * from dept#1 where id < 10"
number_of_rows = cursor.execute(sql)
while True:
row = cursor.fetchone()
if row == None:
break
print(row)
db.close()
4) .fetchmany ()
Rufen Sie eine bestimmte Reihe von Zeilen eines Abfrageergebnisses ab. Der Parameter gibt die Anzahl der Zeilen pro Aufruf an. Die Anzahl der abgerufenen Zeilen hängt stark von der beteiligten Arraygröße des Cursorelements ab. Daher muss versucht werden, die gleiche Anzahl von Zeilen abzurufen, wie die im Parameter angegebene Anzahl von Zeilen. Wenn dies aufgrund der verfügbaren Zeilen nicht möglich ist, werden möglicherweise weniger Zeilen zurückgegeben.
Beispiel
import MySQLdb as my
try:
db = my.connect(host="128.0.0.10",
user="admin",
passwd="admin",
db="emp"
)
cursor = db.cursor()
sql = "select * from dept_#1 where id < 10"
number_of_rows = cursor.execute(sql)
print(cursor.fetchmany(2)) # 2 row fetched
db.close()
5) .fetchall ()
Holen Sie sich alle Zeilen einer Abfrage. Diese Zeilen werden in einer Sequenz zurückgegeben. Hier könnte die Leistung des Abrufs zeitweise durch den Abruf des Cursor-Arrays beeinträchtigt werden. Wenn das Cursor-Array extrem groß ist, ist auch die Zeit, die zum Ziehen der Zeilen benötigt wird, vergleichsweise hoch.
Beispiel
import MySQLdb as my
try:
db = my.connect(host="128.0.0.10",
user="admin",
passwd="admin",
db="emp"
)
cursor = db.cursor()
sql = "select * from dept_#1 where id < 10"
number_of_rows = cursor.execute(sql)
print(cursor.fetchall())
db.close()
6) Cursor.scroll (Wert (, Modus = 'relativ'))
Scrollt durch den Cursor gemäß dem angegebenen Moduswert. Wenn der Modus relativ ist, wird der angegebene Wert als Versatz betrachtet. Wenn der Modus absolut ist, ist der angegebene Wert die Zielposition.
- Cursor.next (): Die nächste Zeile wird von der Position der aktuell ausgeführten Folgeanweisung zurückgegeben.
- Cursor. – iter– (): Zeigt den Cursor an, der für das Iterationsprotokoll geeignet ist.
- Cursor.lastrowid (): Hier wird die Zeilen-ID der zuletzt geänderten Zeile zurückgegeben.
Python-Datenbankoperationen
Die wichtigsten Operationen einer Datenbank einfügen, löschen, aktualisieren und auswählen. Alle diese CRUD-Operationen können auch über Python impliziert werden. In Python werden obligatorische Operationen wie das Öffnen und Schließen der Datenbankverbindungen von Python selbst ausgeführt. Für alle anderen Programmiersprachen werden diese Arten von Vorgängen vom Entwickler speziell ausgeführt. Das folgende Beispiel zeigt die Anwendung dieser Operationen.
Beispiel
import sqlite3
db=sqlite3.connect('test.db')
qry1="insert into student (name, age, marks) values(?, ?, ?);"
qry2="update student set age=? where name=?;"
qry3="SELECT * from student;"
qry4="DELETE from student where name=?;"
students=(('Amarh', 17, 20), ('Deepika', 45, 87)) try:
cur=db.cursor()
cur.executemany(qry1, students)
cur.execute(qry2, (19, 'Deepak'))
db.commit()
cur.execute(qry3)
print(" record updated!! ")
cur.execute(qry4, ('Bill', ))
db.commit()
print(" record deleted!! ")
except:
print(" error found")
db.rollback()
db.close()
Python Db-Ausnahmehierarchie
- Standart Fehler
- Warnung
- Error
- InterfaceError
- Datenbankfehler
- Datenfehler
- OperationalError
- IntegrityError
- Interner Fehler
- ProgrammingError
- NotSupportedError
Python DB-orientierte Konstruktoren
- Datum (Jahr, Monat, Tag): Erstellt ein Objekt mit einem Datumswert
- Zeit (Stunde, Minute, Sekunde): Erstellt ein Objekt mit einem Zeitwert
- Zeitstempel (Jahr, Monat, Tag, Stunde, Minute, Sekunde): Erstellt ein Objekt mit einem Zeitstempelwert
- Binär (Zeichenfolge): Ein Python-Objekt, das Binärwerte enthalten kann, wird erstellt
- STRING-Typ: Beschreibt alle Spalten, die vom Typ String in der Datenbank sind
- NUMBER-Typ: Beschreibt alle Spalten, die vom Nummerntyp sind
- DATETIME-Typ: Erwähnt alle in der Datenbank vorhandenen Datums- und Zeitspalten
- ROWID-Typ: Erreicht die Zeilen-ID-Spalte in der Datenbank
Fazit - Python-Datenbankverbindung
Python ist definitiv eine der flexibelsten Programmierschnittstellen für die datenbankorientierte Programmierung. Insbesondere die klassifizierten Python-DB-APIs machen die Kommunikation mit DBs zu einem effizienten Prozess, unabhängig von jeder Datenbank.
Empfohlene Artikel
Dies ist eine Anleitung zur Python-Datenbankverbindung. Hier diskutieren wir die wichtigsten Schritte in der Datenbankkonnektivität und die Vorteile von Python für die Datenbankprogrammierung. Sie können sich auch die folgenden Artikel ansehen, um mehr zu erfahren -
- Fakultät in Python
- Python-Dateivorgänge
- Für Schleife in Python
- Kapselung in Python
- Python-Sets
- Python-Funktionen
- Factorial-Programm in JavaScript
- Kapselung in JavaScript