Overzicht van Python-databaseprogrammering

De python-programmeertaal biedt uitgebreide API's voor databaseprogrammering. Enkele van de belangrijkste databases die door python worden ondersteund, worden hieronder gegeven. In dit onderwerp gaan we meer te weten over Python Database Connection.

1. Oracle

2. MySQL

3. PostgreSQL

4. Teradata enz

De database is een verzameling vooraf afgesproken informatie die moeiteloos kan worden gebruikt, beheerd en herzien. De belangrijkste kenmerken van een DB API zijn,

  • Maak een databaseverbinding
  • Werk aan SQL-instructies en opgeslagen procedures
  • De verbinding kan worden verbroken

Voordelen van Python voor databaseprogrammering

  • In vergelijking met andere talen is het programmeren van python sneller en eenvoudiger.
  • In python worden verplichte bewerkingen zoals het openen en sluiten van de databaseverbindingen uitgevoerd door python zelf. Voor alle andere programmeertalen worden dit soort bewerkingen specifiek door de ontwikkelaar uitgevoerd.
  • De API's van de python-database ondersteunen een groot aantal database-instellingen, waardoor het veel eenvoudiger wordt om verbinding te maken met de databases.

Python DB API's

databasesPython DB API's
MYSQLMySQLdb
PostgreSQLpsycopg, PyGresQL en pyPgSQL
Orakeldc_oracle2 en cx_oracle
DB2Pydb2

Belangrijkste stappen in databaseconnectiviteit

Vanuit een python-perspectief zijn er vier belangrijke stappen in het proces van databaseverbinding met python. ze zijn zoals hieronder,

1. Het verbindingsobject maken

4. beëindiging van de gemaakte verbinding

2. Declareer een cursor om het lees- en schrijfproces te vergemakkelijken

3. Database-interacties

Verbindingsobjecten
NaamBeschrijving
.dichtbij()Sluit de gevestigde connectiviteit met de database
.commit ()In afwachting van transacties vastleggen met de database
.terugrollen()Deze transactie toestemming om terug te gaan naar het begin van een lopende transactie
.cursor()Er wordt een object gemaakt dat de cursor vertegenwoordigt

Python Cursor Objecten

1) .execute ()

De instructie Sequel die in deze functie wordt vermeld, wordt uitgevoerd.

Syntaxis

execute(sql, (parameters))

Voorbeeld

import sqlite3con = sqlite3.connect("UserDB")cur = con.cursor()cur.execute(" select * from emp ")print cur.fetchone()

2) .executemany ()

Voor alle vermelde parameters in de reeks wordt de gegeven SQL-instructie uitgevoerd

Syntaxis

executemany(sql, (parameters))

Voorbeeld

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 ()

Haal een rij van een query-uitvoer op.

Voorbeeld

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 ()

Haal een specifieke set rijen van een queryresultaat op. de parameter geeft het aantal rijen per oproep aan. Het aantal rijen dat wordt opgehaald, hangt grotendeels af van de betrokken matrixgrootte van het cursorelement. Omdat het aantal rijen dat in de parameter wordt aangegeven, hetzelfde aantal rijen moet worden opgehaald, moet worden geprobeerd. Als dit niet mogelijk is vanwege de specifieke beschikbare rijen, kunnen minder rijen worden geretourneerd.

Voorbeeld

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 ()

Haal alle rijen van een query op. deze rijen worden in een reeks geretourneerd. hier kan de prestatie van het ophalen soms worden beïnvloed door het ophalen van de cursorarray. Wanneer de grootte van de cursorarray extreem groot is, zal de hoeveelheid tijd die nodig is om de rijen te trekken ook relatief hoog zijn.

Voorbeeld

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 (waarde (, mode = 'relatief'))

Bladert door de cursor volgens de genoemde moduswaarde. als de modus relatief is, wordt de genoemde waarde als een offset beschouwd, in het geval dat de modus absoluut is, is de genoemde waarde de doelpositie.

  1. Cursor.next (): de volgende rij wordt geretourneerd vanaf de positie van de momenteel uitgevoerde vervolginstructie .
  2. Cursor. – iter– (): Theaters de cursor geschikt voor iteratieprotocol.
  3. Cursor.lastrowid (): de rij-id van de laatst gewijzigde rij wordt hier geretourneerd.

Python-databasebewerkingen

De belangrijkste bewerkingen van elke database invoegen, verwijderen, bijwerken en selecteren. al deze CRUD-bewerkingen kunnen ook via python worden geïmpliceerd. In python worden verplichte bewerkingen zoals het openen en sluiten van de databaseverbindingen uitgevoerd door python zelf. Voor alle andere programmeertalen worden dit soort bewerkingen specifiek door de ontwikkelaar uitgevoerd. Het onderstaande voorbeeld geeft de toepassing van deze bewerkingen weer.

Voorbeeld

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 Uitzonderingshiërarchie

  • Standaardfout
  • Waarschuwing
  • Fout
  • InterfaceError
  • Databank fout
  • Gegevensfout
  • OperationalError
  • IntegrityError
  • Interne fout
  • ProgrammingError
  • NotSupportedError

Orientaalse constructeurs van Python DB

  • Datum (jaar, maand, dag): bouwt een object met een datumwaarde erin
  • Tijd (uur, minuut, seconde): bouwt een object met een tijdswaarde erin
  • Tijdstempel (jaar, maand, dag, uur, minuut, seconde): bouwt een object met de tijdstempelwaarde erin
  • Binary (string): een python-object dat binaire waarden kan bevatten, is geconstrueerd
  • STRING type: beschrijft alle kolommen van het stringtype in de database
  • NUMBER type: beschrijft alle kolommen van het type nummer
  • DATETIME-type: vermeldt alle datum- en tijdtype- kolommen in de database
  • ROWID-type: bereikt de rij-ID-kolom in de database

Conclusie - Python-databaseverbinding

Python onderscheidt zich absoluut als een van de meest flexibele programmeerinterfaces voor database-georiënteerd programmeren. vooral de geclassificeerde set python DB-API's maken de taak van communicatie met DB's een efficiënt proces, ongeacht welke database dan ook.

Aanbevolen artikelen

Dit is een gids voor Python Database Connection. Hier bespreken we de belangrijkste stappen in databaseverbinding en de voordelen van Python voor databaseprogrammering. U kunt ook de volgende artikelen bekijken voor meer informatie -

  1. Factorial in Python
  2. Python-bestandsbewerkingen
  3. Voor Loop in Python
  4. Inkapseling in Python
  5. Python-sets
  6. Python-functies
  7. Factorieprogramma in JavaScript
  8. Inkapseling in JavaScript