Oversigt over Python-databaseprogrammering

Python-programsproget tilbyder omfattende API'er til databaseprogrammering. Nogle af de nøgledatabaser, der understøttes af python, er vist nedenfor. I dette emne skal vi lære om Python-databaseforbindelse.

1. Oracle

2. MySQL

3. PostgreSQL

4. Teradata osv

Databasen er en samling af forudbestemte oplysninger, der nemt kan bruges, styres, revideret. De vigtigste funktioner i en DB API er,

  • Opret en databaseforbindelse
  • Arbejd med SQL-sætninger og lagrede procedurer
  • Forbindelsen kan lukkes

Fordelene ved Python til databaseprogrammering

  • Sammenlignet med andre sprog er python-programmering hurtigere og let.
  • I python udføres obligatoriske operationer som åbning og lukning af databaseforbindelser af python selv. For alle andre programmeringssprog udføres disse typer operationer specifikt af udvikleren.
  • Python-databasens API understøtter et bredt udvalg af databaseopsætninger, så det gør opgaven med at oprette forbindelse til databaserne til en meget lettere proces.

Python DB API'er

DatabaserPython DB API'er
MYSQLMySQLdb
PostgreSQLpsycopg, PyGresQL og pyPgSQL
Oracledc_oracle2 og cx_oracle
DB2Pydb2

Vigtige trin i databaseforbindelse

Fra et python-perspektiv er der fire store trin i processen med databaseforbindelse ved hjælp af python. de er som nedenfor,

1. Oprettelse af forbindelsesobjektet

4. afslutning af den oprettede forbindelse

2. Angiv en markør for at imødekomme læsning og skrivning

3. Databaseinteraktioner

Forbindelsesobjekter
NavnBeskrivelse
.tæt()Lukker etableret forbindelse med databasen
.begå()Foretage afventende transaktioner med databasen
.rollback ()Denne transaktionstilladelse til vil rulle tilbage til starten af ​​en verserende transaktion
.cursoren()Der oprettes et objekt, der repræsenterer markøren

Python markørobjekter

1). Udfør ()

Sequel-sætningen nævnt i denne funktion udføres.

Syntaks

execute(sql, (parameters))

Eksempel

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

2) .executemany ()

For alle de anførte parametre i sekvensen udføres den givne SQL-sætning

Syntaks

executemany(sql, (parameters))

Eksempel

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

Hent en række af en forespørgselsudgang.

Eksempel

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

Hent et specifikt sæt rækker med et forespørgselsresultat. parameteren specificerer antallet af rækker pr. opkald. Antallet af rækker, der hentes, afhænger i vid udstrækning af markørelementets involverede arraystørrelse. Som det antal rækker, der er angivet i parameteren, skal det samme antal rækker forsøges hentet. Hvis dette ikke er i stand på grund af de specifikke tilgængelige rækker, kan der muligvis returneres færre rækker.

Eksempel

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

Hent alle rækkerne i en forespørgsel. disse rækker returneres i en rækkefølge. her kunne udførelsen af ​​hentningen til tider påvirkes af markørens array-hentning. Når markørens arraystørrelse er ekstremt stor, vil den tid, det tager at trække i rækkerne også være relativt meget høj.

Eksempel

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) Markør.scroll (værdi (, tilstand = 'relativ'))

Ruller gennem markøren i henhold til den nævnte modusværdi. Hvis tilstanden er relativ, betragtes den nævnte værdi som en forskydning, i tilfælde af at tilstanden er absolut, er den nævnte værdi målpositionen.

  1. Cursor.next (): Den næste række returneres fra den aktuelt udførte efterfølgende sætningsposition.
  2. Cursor. – iter– (): Teater markøren egnet til iterationsprotokol.
  3. Cursor.lastrowid (): række-id'et for den sidst ændrede række returneres her.

Python-databasefunktioner

De vigtigste operationer for enhver database indsætter, sletter, opdaterer og vælger. alle disse CRUD-operationer kan også antydes gennem python. I python udføres obligatoriske operationer som åbning og lukning af databaseforbindelser af python selv. For alle andre programmeringssprog udføres disse typer operationer specifikt af udvikleren. Nedenstående eksempel viser anvendelsen af ​​disse operationer.

Eksempel

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 undtagelseshierarki

  • Standard fejl
  • Advarsel
  • Fejl
  • InterfaceError
  • DatabaseError
  • DataError
  • OperationalError
  • IntegrityError
  • Intern fejl
  • ProgrammingError
  • NotSupportedError

Python DB orienterede konstruktører

  • Dato (år, måned, dag): Bygger et objekt med en datoværdi i det
  • Tid (time, minut, sekund): Bygger et objekt med en tidsværdi i det
  • Tidstempel (år, måned, dag, time, minut, sekund): Bygger et objekt med tidsstempelværdi i det
  • Binær (streng): Et python-objekt, der kan indeholde binære værdier, er konstrueret
  • STRING-type: Beskriver alle kolonner, der er strengetype i databasen
  • NUMBER type: Beskriver alle kolonner, der er af nummertype
  • DATETIME-type: Nævner alle dato- og tidstypekolonner, der findes i databasen
  • ROWID-type: Nåer række-id-kolonnen i databasen

Konklusion - Python-databaseforbindelse

Python fremstår bestemt som en af ​​de mest fleksible programmeringsgrænseflader til databaseorienteret programmering. især det klassificerede sæt af python DB-API'er gør opgaven med at kommunikere med DB'er en effektiv proces uanset hvilken som helst database.

Anbefalede artikler

Dette er en guide til Python-databaseforbindelse. Her diskuterer vi de vigtigste trin i databaseforbindelse og fordelene ved Python til databaseprogrammering. Du kan også se på de følgende artikler for at lære mere -

  1. Factorial i Python
  2. Python-filoperationer
  3. For Loop i Python
  4. Indkapsling i Python
  5. Python-sæt
  6. Python-funktioner
  7. Factorial-program i JavaScript
  8. Indkapsling i JavaScript

Kategori: