Ü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

DatenbankenPython DB-APIs
MYSQLMySQLdb
PostgreSQLpsycopg, PyGresQL und pyPgSQL
Orakeldc_oracle2 und cx_oracle
DB2Pydb2

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
NameBeschreibung
.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.

  1. Cursor.next (): Die nächste Zeile wird von der Position der aktuell ausgeführten Folgeanweisung zurückgegeben.
  2. Cursor. – iter– (): Zeigt den Cursor an, der für das Iterationsprotokoll geeignet ist.
  3. 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 -

  1. Fakultät in Python
  2. Python-Dateivorgänge
  3. Für Schleife in Python
  4. Kapselung in Python
  5. Python-Sets
  6. Python-Funktionen
  7. Factorial-Programm in JavaScript
  8. Kapselung in JavaScript