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
databases | Python DB API's |
MYSQL | MySQLdb |
PostgreSQL | psycopg, PyGresQL en pyPgSQL |
Orakel | dc_oracle2 en cx_oracle |
DB2 | Pydb2 |
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 | |
Naam | Beschrijving |
.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.
- Cursor.next (): de volgende rij wordt geretourneerd vanaf de positie van de momenteel uitgevoerde vervolginstructie .
- Cursor. – iter– (): Theaters de cursor geschikt voor iteratieprotocol.
- 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 -
- Factorial in Python
- Python-bestandsbewerkingen
- Voor Loop in Python
- Inkapseling in Python
- Python-sets
- Python-functies
- Factorieprogramma in JavaScript
- Inkapseling in JavaScript