Oversikt over Python-databaseprogrammering

Python-programspråket tilbyr omfattende API-er for databaseprogrammering. Noen av de viktigste databasene som støttes av python, er gitt nedenfor. I dette emnet skal vi lære om Python databasetilkobling.

1. Oracle

2. MySQL

3. PostgreSQL

4. Teradata osv

Databasen er en samling av forhåndsarrangert informasjon som enkelt kan brukes, administreres, revideres. De viktigste funksjonene i et DB API er,

  • Opprett en databaseforbindelse
  • Arbeid med SQL-setninger og lagrede prosedyrer
  • Tilkoblingen kan lukkes

Fordelene med Python for databaseprogrammering

  • Sammenlignet med andre språk er python-programmering raskere og enkelt.
  • I python utføres obligatoriske operasjoner som å åpne og lukke databaseforbindelser av python selv. For alle andre programmeringsspråk utføres denne typen operasjoner spesielt av utvikleren.
  • Python-databasens API støtter et bredt omfang av databaseoppsett, slik at det gjør oppgaven å koble til databasene til en mye enklere prosess.

Python DB API-er

databaserPython DB API-er
MYSQLMySQLdb
PostgreSQLpsycopg, PyGresQL og pyPgSQL
Oracledc_oracle2 og cx_oracle
DB2Pydb2

Viktige trinn i databasetilkobling

Fra et python-perspektiv er det fire viktige trinn i prosessen med databasetilkobling ved bruk av python. de er som nedenfor,

1. Opprette tilkoblingsobjektet

4. avslutning av den opprettede forbindelsen

2. For å imøtekomme lese- og skriveprosessen erklærer du en markør

3. Databaseinteraksjoner

Tilkoblingsobjekter
NavnBeskrivelse
.Lukk()Lukker etablert tilkobling med databasen
.begå()Begå ventende transaksjoner med databasen
.rollback ()Denne transaksjonens samtykke til vil rulle tilbake til starten av en verserende transaksjon
.cursor ()Et objekt som representerer markøren, opprettes

Python markørobjekter

1). Utfør ()

Sequel-setningen som er nevnt i denne funksjonen blir utført.

syntax

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 listede parametrene i sekvensen blir den gitte SQL-setningen utført

syntax

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 rad med en spørreutgang.

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 spesifikt sett med rader med et spørreresultat. parameteren spesifiserer antall rader per samtale. Antall rader som hentes, avhenger i stor grad av den involverte matrisestørrelsen til markørelementet. Så som antall rader som er angitt i parameteren gitt, må samme antall rader forsøkes hentet. Hvis dette ikke er i stand på grunn av de spesifikke radene som er tilgjengelige, kan det være færre rader som kan returneres.

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 radene i en spørring. disse radene returneres i en sekvens. her kan ytelsen til hentingen til tider bli påvirket av markørfeltet henting. Når markørmatrisestørrelsen er ekstremt stor, vil også tiden det tar å trekke i radene være relativt høy.

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 (verdi (, modus = 'relativ'))

Bla gjennom markøren i henhold til den nevnte modusverdien. Hvis modusen er relativ, blir den nevnte verdien betraktet som en forskyvning, i tilfelle hvis modusen er absolutt, er verdien som er nevnt målposisjonen.

  1. Cursor.next (): Den neste raden returneres fra den for øyeblikket utførende oppfølgingsuttalelsesposisjonen.
  2. Markør. – iter– (): Teater markøren egnet for iterasjonsprotokoll.
  3. Cursor.lastrowid (): rad-IDen til den sist modifiserte raden returneres her.

Python-databasefunksjoner

De viktigste operasjonene til en hvilken som helst database setter inn, sletter, oppdaterer og velger. alle disse CRUD-operasjonene kan også antydes gjennom python. I python utføres obligatoriske operasjoner som å åpne og lukke databaseforbindelser av python selv. For alle andre programmeringsspråk utføres denne typen operasjoner spesielt av utvikleren. Eksemplet nedenfor viser bruken av disse operasjonene.

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 unntakshierarki

  • Standard feil
  • Advarsel
  • Feil
  • InterfaceError
  • Database feil
  • DataError
  • OperationalError
  • IntegrityError
  • Intern feil
  • ProgrammingError
  • NotSupportedError

Python DB orienterte konstruktører

  • Dato (år, måned, dag): Bygger et objekt med en datoverdi i det
  • Tid (time, minutt, sekund): Bygger et objekt med en tidsverdi i det
  • Tidstempel (år, måned, dag, time, minutt, sekund): Bygger et objekt med tidsstempelverdi i det
  • Binær (streng): Et pythonobjekt som er i stand til å holde binære verdier, er konstruert
  • STRING-type: Beskriver alle kolonnene som er strengtype i databasen
  • NUMBER type: Beskriver alle kolonnene som er av nummertype
  • DATETIME-type: Nevner alle dato- og tidstypekolonnene som er til stede i databasen
  • ROWID-type: Nåer rad-ID-kolonnen i databasen

Konklusjon - Python-databasetilkobling

Python fremstår definitivt som et av de mest fleksible programmeringsgrensesnittene for databaseorientert programmering. spesielt det klassifiserte settet med python DB-API-er gjør oppgaven med å kommunisere med DB-er en effektiv prosess uavhengig av hvilken som helst database.

Anbefalte artikler

Dette er en guide til Python databasetilkobling. Her diskuterer vi viktige trinn i databasetilkobling og fordelene med Python for databaseprogrammering. Du kan også se på følgende artikler for å lære mer -

  1. Factorial i Python
  2. Python-filoperasjoner
  3. For Loop in Python
  4. Innkapsling i Python
  5. Python-sett
  6. Python-funksjoner
  7. Factorial-program i JavaScript
  8. Innkapsling i JavaScript