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
Databaser | Python DB API'er |
MYSQL | MySQLdb |
PostgreSQL | psycopg, PyGresQL og pyPgSQL |
Oracle | dc_oracle2 og cx_oracle |
DB2 | Pydb2 |
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 | |
Navn | Beskrivelse |
.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.
- Cursor.next (): Den næste række returneres fra den aktuelt udførte efterfølgende sætningsposition.
- Cursor. – iter– (): Teater markøren egnet til iterationsprotokol.
- 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 -
- Factorial i Python
- Python-filoperationer
- For Loop i Python
- Indkapsling i Python
- Python-sæt
- Python-funktioner
- Factorial-program i JavaScript
- Indkapsling i JavaScript