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
databaser | Python DB API-er |
MYSQL | MySQLdb |
PostgreSQL | psycopg, PyGresQL og pyPgSQL |
Oracle | dc_oracle2 og cx_oracle |
DB2 | Pydb2 |
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 | |
Navn | Beskrivelse |
.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.
- Cursor.next (): Den neste raden returneres fra den for øyeblikket utførende oppfølgingsuttalelsesposisjonen.
- Markør. – iter– (): Teater markøren egnet for iterasjonsprotokoll.
- 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 -
- Factorial i Python
- Python-filoperasjoner
- For Loop in Python
- Innkapsling i Python
- Python-sett
- Python-funksjoner
- Factorial-program i JavaScript
- Innkapsling i JavaScript