Ülevaade Pythoni andmebaasi programmeerimisest

Programmi python keel pakub andmebaasi programmeerimiseks ulatuslikke API-sid. Mõned võtmebaasidest, mida python toetab, on toodud allpool. Selles teemas tutvume Pythoni andmebaasiühendusega.

1. Oracle

2. MySQL

3. PostgreSQL

4. Teradata jne

Andmebaas on ettevalmistatud teabe kogum, mida saab vaevata kasutada, hallata, muuta. DB API peamised omadused on:

  • Looge andmebaasiühendus
  • Töö SQL-lausete ja salvestatud protseduuridega
  • Ühenduse saab sulgeda

Pythoni eelised andmebaaside programmeerimisel

  • Võrreldes teiste keeltega on pythoni programmeerimine kiirem ja hõlbus.
  • Pythoni kohustuslike toimingute korral, näiteks andmebaasi ühenduste avamine ja sulgemine, teostab python ise. Kõigi muude programmeerimiskeelte puhul teostab seda tüüpi toiminguid spetsiaalselt arendaja.
  • Python andmebaasi API toetab suures osas andmebaasi seadistusi, mis muudab andmebaasidega ühenduse loomise protsessi palju lihtsamaks.

Python DB API-d

AndmebaasidPython DB API-d
MYSQLMySQLdb
PostgreSQLpsycopg, PyGresQL ja pyPgSQL
Oracledc_oracle2 ja cx_oracle
DB2Pydb2

Andmebaasi ühenduvuse põhietapid

Pythoni vaatenurgast on andmebaasi ühenduse loomise protsessis neli peamist sammu, kasutades püthonit. nad on nagu allpool,

1. Ühenduse objekti loomine

4. loodud ühenduse katkestamine

2. Lugemis- ja kirjutamisprotsessi mahutamiseks kuulutage kursorit

3. Andmebaaside koostoimed

Ühendusobjektid
NimiKirjeldus
.Sulge()Sulgeb loodud ühenduse andmebaasiga
.commit ()Kinnitage pooleliolevad tehingud andmebaasiga
.rollback ()See tehingu nõusolek tagastatakse ootel oleva tehingu algusesse
.kursor ()Luuakse kursorit esindav objekt

Pythoni kursori objektid

1) toimige ()

Selles funktsioonis mainitud Sequeli avaldus täidetakse.

Süntaks

execute(sql, (parameters))

Näide

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

2) .executemany ()

Kõigi jadas loetletud parameetrite puhul käivitatakse antud SQL-lause

Süntaks

executemany(sql, (parameters))

Näide

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

Too üks päringiväljundi rida.

Näide

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

Tooge päringutulemuse konkreetne ridade komplekt. parameeter täpsustab ridade arvu kõne kohta. Toodetavate ridade arv sõltub suuresti kursori elemendi massiivi suurusest. Nii et kui parameetris näidatud ridade arv annab sama arvu ridu, tuleb proovida neid tuua. Kui see pole konkreetsete saadaolevate ridade tõttu võimeline, võib tagastada vähem ridu.

Näide

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

Tooge kõik päringu read. need read tagastatakse järjestuses. siin võib kursorimassi toomine mõnikord mõjutada toomist. Kui kursorimassiivi suurus on äärmiselt suur, on ka ridade tõmbamiseks kuluv aeg suhteliselt kõrge.

Näide

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äärtus (, režiim = 'suhteline'))

Kerib kursorit vastavalt mainitud režiimi väärtusele. kui režiim on suhteline, loetakse mainitud väärtus nihkeks, juhul kui režiim on absoluutne, siis on mainitud väärtus sihtpositsioon.

  1. Cursor.next (): järgmine rida naaseb parajasti täidetava järge käsitleva väljavõtte positsioonilt.
  2. Kursor – iter– (): näitab kursori, mis sobib iteratsiooniprotokolli jaoks.
  3. Cursor.lastrowid (): siia tagastatakse viimati muudetud rea ID.

Pythoni andmebaasi toimingud

Mis tahes andmebaasi sisestamise, kustutamise, värskendamise ja valimise põhitoimingud. kõiki neid CRUD-toiminguid saab ka vihjata pütooni kaudu. Pythoni kohustuslike toimingute korral, näiteks andmebaasi ühenduste avamine ja sulgemine, teostab python ise. Kõigi muude programmeerimiskeelte puhul teostab seda tüüpi toiminguid spetsiaalselt arendaja. Allpool toodud näide kirjeldab nende toimingute rakendamist.

Näide

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 erandihierarhia

  • StandardError
  • Hoiatus
  • Viga
  • InterfaceError
  • DatabaseError
  • DataError
  • Operatiivne viga
  • IntegrityError
  • Sisemine viga
  • ProgrammingError
  • NotSupportedError

Python DB orienteeritud konstruktorid

  • Kuupäev (aasta, kuu, päev): ehitab objekti, millel on kuupäeva väärtus
  • Aeg (tund, minut, sekund): ehitab objekti, mille ajaväärtus on selles
  • Ajatempel (aasta, kuu, päev, tund, minut, teine): ehitab objekti, millel on ajatempli väärtus
  • Binaarne (string): konstrueeritakse pütoonobjekt, mis suudab hoida binaarseid väärtusi
  • Tüüp STRING: kirjeldab kõiki andmebaasis stringi tüüpi veerge
  • NUMBER tüüp: kirjeldab kõiki numbritüüpi veerge
  • DATETIME tüüp: mainib kõiki andmebaasis olevaid kuupäeva ja kellaaja tüübi veerge
  • ROWID tüüp: jõuab andmebaasi rea ID veergu

Järeldus - Pythoni andmebaasi ühendus

Python paistab kindlasti silma ühe paindlikuma programmeerimisliidese abil andmebaasidele orienteeritud programmeerimisel. eriti just püthon-DB-API klassifitseeritud komplekt muudab DB-dega suhelmise tõhusaks protsessiks, sõltumata andmebaasidest.

Soovitatavad artiklid

See on Pythoni andmebaaside ühenduse juhend. Siin käsitleme andmebaaside ühenduvuse põhietappe ja Pythoni eeliseid andmebaaside programmeerimisel. Võite lisateabe saamiseks vaadata ka järgmisi artikleid -

  1. Faktuur Pythonis
  2. Pythoni failioperatsioonid
  3. Loopi jaoks Pythonis
  4. Kapseldamine Pythonis
  5. Pythoni komplektid
  6. Pythoni omadused
  7. Faktoriprogramm JavaScriptis
  8. Kapseldamine JavaScripti

Kategooria: