Översikt över Python-databasprogrammering

Python-programspråket erbjuder omfattande API: er för databasprogrammering. Några av de viktigaste databaserna som stöds av python ges nedan. I det här ämnet kommer vi att lära dig om Python-databasanslutning.

1. Oracle

2. MySQL

3. PostgreSQL

4. Teradata osv

Databasen är en samling av förordnad information som enkelt kan användas, hanteras, revideras. De viktigaste funktionerna i ett DB API är,

  • Skapa en databasanslutning
  • Arbeta med SQL-uttalanden och lagrade procedurer
  • Anslutningen kan stängas

Fördelarna med Python för databasprogrammering

  • Jämfört med andra språk är python-programmering snabbare och lätt.
  • I python utförs obligatoriska operationer som att öppna och stänga databasanslutningarna av python själv. För alla andra programmeringsspråk utförs dessa typer av operationer specifikt av utvecklaren.
  • Python-databas-API: n stöder en stor utsträckning av databasinställningar så det gör uppgiften att ansluta till databaserna till en mycket enklare process.

Python DB API: er

databaserPython DB API: er
MYSQLMySQLdb
PostgreSQLpsycopg, PyGresQL och pyPgSQL
Orakeldc_oracle2 och cx_oracle
DB2Pydb2

Viktiga steg i databasanslutning

Ur ett pythonperspektiv finns det fyra huvudsteg i processen för databasanslutning med python. de är som nedan,

1. Skapa anslutningsobjektet

4. avslutande av den skapade anslutningen

2. För att anpassa till läs- och skrivprocessen förklara en markör

3. Databasinteraktioner

Anslutningsobjekt
namnBeskrivning
.stänga()Stänger etablerad anslutning till databasen
.begå()Begå väntande transaktioner med databasen
.rulla tillbaka()Detta transaktionsvillkor kommer att återgå till början av en väntande transaktion
.cursor ()Ett objekt som representerar markören skapas

Python markörobjekt

1). Execute ()

Sequel-uttalandet som nämns i denna funktion körs.

Syntax

execute(sql, (parameters))

Exempel

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

2) .executemany ()

För alla listade parametrar i sekvensen körs det givna SQL-uttalandet

Syntax

executemany(sql, (parameters))

Exempel

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

Hämta en rad av en frågautgång.

Exempel

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

Hämta en specifik uppsättning rader med en frågeställning. parametern anger antalet rader per samtal. Antalet rader som hämtas beror till stor del på den involverade matrisstorleken för markörelementet. Så eftersom antalet rader som anges i parametern ges samma antal rader måste försökas hämtas. Om detta inte är kapabelt på grund av de specifika tillgängliga raderna kan färre rader returneras.

Exempel

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

Hämta alla raderna i en fråga. dessa rader returneras i en sekvens. här kan hämtningens prestanda ibland påverkas av markörens arrayhämtning. När markörens matrisstorlek är extremt stor kommer den tid det tar för att dra raderna också att vara relativt mycket hög.

Exempel

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 (värde (, läge = 'relativ'))

Bläddrar genom markören enligt det nämnda lägesvärdet. om läget är relativt betraktas det nämnda värdet som en förskjutning, i fallet om läget är absolut är det nämnda värdet målpositionen.

  1. Cursor.next (): Nästa rad returneras från den nuvarande exekverande positionen för uppföljare.
  2. Cursor. – iter– (): Teatrar markören som är lämplig för iterationsprotokoll.
  3. Cursor.lastrowid (): rad-ID för den sist modifierade raden returneras här.

Python-databasoperationer

Nyckelfunktioner för varje databas infoga, radera, uppdatera och välja. alla dessa CRUD-operationer kan också impliceras via python. I python utförs obligatoriska operationer som att öppna och stänga databasanslutningarna av python själv. För alla andra programmeringsspråk utförs dessa typer av operationer specifikt av utvecklaren. Nedanstående exempel visar tillämpningen av dessa operationer.

Exempel

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 undantagshierarki

  • Standard fel
  • Varning
  • Fel
  • InterfaceError
  • Databas fel
  • Datorfel
  • OperationalError
  • IntegrityError
  • Internt fel
  • ProgrammingError
  • NotSupportedError

Python DB orienterade konstruktörer

  • Datum (år, månad, dag): bygger ett objekt med ett datumvärde i det
  • Tid (timme, minut, sekund): bygger ett objekt med ett tidsvärde i det
  • Tidsstämpel (år, månad, dag, timme, minut, sekund): Skapar ett objekt med tidsstämpelvärde i det
  • Binary (string): Ett pythonobjekt som kan hålla binära värden är konstruerat
  • STRING-typ: Beskriver alla kolumner som är strängtyp i databasen
  • NUMBER typ: Beskriver alla kolumner som är av antal typ
  • DATETIME-typ: Nämner alla datum- och tidtypskolumner som finns i databasen
  • ROWID-typ: når rad-ID-kolumnen i databasen

Slutsats - Python databasanslutning

Python framstår definitivt som ett av de mest flexibla programmeringsgränssnitten för databasorienterad programmering. särskilt den klassificerade uppsättningen av Python-DB-API: er gör uppgiften att kommunicera med DB: er en effektiv process oavsett vilken databas som helst.

Rekommenderade artiklar

Detta är en guide till Python-databasanslutning. Här diskuterar vi de viktigaste stegen i databasanslutning och fördelarna med Python för databasprogrammering. Du kan också titta på följande artiklar för att lära dig mer -

  1. Factorial i Python
  2. Python-filoperationer
  3. För Loop in Python
  4. Inkapsling i Python
  5. Python-uppsättningar
  6. Python-funktioner
  7. Factorial-program i JavaScript
  8. Inkapsling i JavaScript

Kategori: