A Python adatbázis-programozás áttekintése
A python programnyelv kiterjedt API-kat kínál az adatbázis-programozáshoz. A Python által támogatott kulcsfontosságú adatbázisok némelyike az alábbiakban található. Ebben a témában a Python Database Connection-ről tanulunk.
1. Oracle
2. MySQL
3. PostgreSQL
4. Teradata stb
Az adatbázis előre elrendezett információk gyűjteménye, amelyek könnyedén felhasználhatók, kezelhetők, felülvizsgálhatók. A DB API fő jellemzői a következők:
- Hozzon létre egy adatbázis-kapcsolatot
- Dolgozzon az SQL utasításokkal és a tárolt eljárásokkal
- A kapcsolat lezárható
A Python előnyei az adatbázis-programozáshoz
- Más nyelvekhez képest a python programozása gyorsabb és egyszerűbb.
- A python olyan kötelező műveleteiben, mint az adatbázis-kapcsolatok megnyitása és bezárása, maga a python végzi. Az összes többi programozási nyelvnél az ilyen típusú műveleteket kifejezetten a fejlesztő végzi.
- A python adatbázis API széles körű adatbázis-beállításokat támogat, így sokkal könnyebbé teszi az adatbázisokhoz való kapcsolódást.
Python DB API-k
adatbázisok | Python DB API-k |
MYSQL | MySQLdb |
PostgreSQL | psycopg, PyGresQL és pyPgSQL |
Jóslat | dc_oracle2 és cx_oracle |
DB2 | Pydb2 |
Az adatbázis-kapcsolat legfontosabb lépései
Python szempontjából négy fő lépés van az adatbázis-kapcsolat folyamatában a python használatával. az alábbiak szerint vannak,
1. A kapcsolatobjektum létrehozása
4. a létrehozott kapcsolat megszakítása
2. Az olvasási és írási folyamat befogadásához deklaráljon egy kurzort
3. Adatbázis-interakciók
Kapcsolati objektumok | |
Név | Leírás |
.Bezárás() | Lezárja az összeköttetést az adatbázissal |
.elkövetni() | Végezzen függőben lévő tranzakciókat az adatbázismal |
.rollback () | Ez a tranzakciós hozzájárulás visszatér a függőben lévő tranzakció kezdetéhez |
.kurzor() | Létrejön egy kurzort ábrázoló objektum |
Python kurzorobjektumok
1) .execute ()
Az ebben a funkcióban említett sorozat utasítás végrehajtódik.
Szintaxis
execute(sql, (parameters))
Példa
import sqlite3con = sqlite3.connect("UserDB")cur = con.cursor()cur.execute(" select * from emp ")print cur.fetchone()
2) .executemany ()
A sorozatban felsorolt összes paraméter esetén az adott SQL utasítás végrehajtásra kerül
Szintaxis
executemany(sql, (parameters))
Példa
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 ()
Lekérés a lekérdezés kimenetének egy sorához.
Példa
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 ()
Hozzon le egy lekérdezés eredmény sorát. a paraméter megadja a hívásokonkénti sorok számát. A lehívott sorok száma nagyban függ a kurzor elem érintett tömb méretétől. Tehát, mivel a paraméterben megadott sorok számát ugyanolyan számú sorral kell megkísérelni letölteni. Ha ez a rendelkezésre álló konkrét sorok miatt nem képes, akkor kevesebb sor kerül visszaadásra.
Példa
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 ()
Töltse le a lekérdezés összes sorát. ezeket a sorokat egy sorozatban adják vissza. itt a lekérés teljesítményét időnként befolyásolhatja a kurzor tömb lekérdezése. Ha a kurzor tömbje rendkívül nagy, akkor a sorok húzásához szükséges idő is viszonylag nagyon magas.
Példa
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) Kurzor.gördítés (érték (, mód = 'relatív'))
Görgeti a kurzort az említett üzemmódértéknek megfelelően. ha az üzemmód relatív, akkor az említett értéket eltolásnak kell tekinteni, ha az üzemmód abszolút, akkor az említett érték a célhely.
- Cursor.next (): A következő sor visszatér az aktuálisan végrehajtott folytatási utasítás pozícióból.
- Kurzor – iter– (): Az iterációs protokollhoz megfelelő kurzort állítja be .
- Cursor.lastrowid (): itt tér vissza a legutóbb módosított sor azonosítója.
Python adatbázis műveletek
Bármely adatbázis beillesztésének, törlésének, frissítésének és kiválasztásának legfontosabb műveletei. ezeket a CRUD műveleteket pythonon keresztül is be lehet vonni. A python olyan kötelező műveleteiben, mint az adatbázis-kapcsolatok megnyitása és bezárása, maga a python végzi. Az összes többi programozási nyelvnél az ilyen típusú műveleteket kifejezetten a fejlesztő végzi. Az alábbi példa ezen műveletek alkalmazását szemlélteti.
Példa
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 kivételrendszer
- StandardError
- Figyelem
- Hiba
- InterfaceError
- Adatbázis hiba
- DataError
- OperationalError
- IntegrityError
- Belső hiba
- ProgrammingError
- NotSupportedError
Python DB-orientált konstruktorok
- Dátum (év, hónap, nap): Objektumot épít egy dátumértékkel
- Idő (óra, perc, másodperc): Objektumot épít egy időértékkel
- Időbélyegző (év, hónap, nap, óra, perc, másodperc): Objektumot épít időbélyegző értékkel
- Bináris (karakterlánc): Egy python objektumot készítünk, amely képes bináris értékeket tárolni
- STRING típus: Leírja az összes oszlopot, amelyek karakterlánc típusúak az adatbázisban
- SZÁM típusa: Az összes oszlopot leírja, amely szám típusú
- DATETIME típus: Megemlíti az adatbázisban található összes dátum- és időtípus-oszlopot
- ROWID típus: Eléri a sor azonosító oszlopát az adatbázisban
Következtetés - Python adatbázis kapcsolat
A Python határozottan kiemelkedik az adatbázis-orientált programozás egyik legrugalmasabb programozási felületének. Különösen a python DB-API osztályozott halmaza teszi a DB folyamatokkal való kommunikáció hatékony feladatává, bármilyen adatbázistól függetlenül.
Ajánlott cikkek
Ez egy útmutató a Python Database Connection programhoz. Itt tárgyaljuk az adatbázis-kapcsolat legfontosabb lépéseit és a Python előnyeit az adatbázis-programozásban. Lehet, hogy megnézi a következő cikkeket is, ha többet szeretne megtudni -
- Faktérium a Pythonban
- Python fájlműveletek
- A hurok a Pythonban
- Beágyazás a Pythonba
- Python készletek
- Python szolgáltatások
- Faktorialis program a JavaScript-ben
- Beágyazás a JavaScript-be