Ö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
databaser | Python DB API: er |
MYSQL | MySQLdb |
PostgreSQL | psycopg, PyGresQL och pyPgSQL |
Orakel | dc_oracle2 och cx_oracle |
DB2 | Pydb2 |
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 | |
namn | Beskrivning |
.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.
- Cursor.next (): Nästa rad returneras från den nuvarande exekverande positionen för uppföljare.
- Cursor. – iter– (): Teatrar markören som är lämplig för iterationsprotokoll.
- 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 -
- Factorial i Python
- Python-filoperationer
- För Loop in Python
- Inkapsling i Python
- Python-uppsättningar
- Python-funktioner
- Factorial-program i JavaScript
- Inkapsling i JavaScript