Prehľad programovania databázy Python
Programový jazyk python ponúka rozsiahle API pre programovanie databázy. Niektoré kľúčové databázy podporované programom python sú uvedené nižšie. V tejto téme sa dozvieme viac o prepojení databázy Python.
1. Oracle
2. MySQL
3. PostgreSQL
4. Teradata atď
Databáza je kolekcia vopred pripravených informácií, ktoré možno bez námahy použiť, spravovať, revidovať. Kľúčové vlastnosti DB API sú:
- Vytvorte pripojenie k databáze
- Práce na príkazoch SQL a uložených procedúrach
- Spojenie je možné uzavrieť
Výhody programu Python pre programovanie databázy
- V porovnaní s inými jazykmi je programovanie pythonu rýchlejšie a ľahšie.
- V pythone sú povinné operácie ako otváranie a zatváranie databázových spojení vykonávané samotným pythonom. Pre všetky ostatné programovacie jazyky tieto typy operácií vykonáva špecificky vývojár.
- Rozhrania API databázy python podporujú širokú škálu nastavení databázy, takže je veľmi jednoduchým procesom pripojenia k databázam.
Python DB API
databázy | Python DB API |
MYSQL | MySQLdb |
PostgreSQL | psycopg, PyGresQL a pyPgSQL |
veštec | dc_oracle2 a cx_oracle |
DB2 | Pydb2 |
Kľúčové kroky v pripojení k databáze
Z hľadiska pythonu existujú štyri hlavné kroky v procese pripojenia k databáze pomocou pythonu. sú ako nižšie,
1. Vytvorenie objektu pripojenia
4. ukončenie vytvoreného pripojenia
2. Na prispôsobenie procesu čítania a zápisu deklarujte kurzor
3. Interakcie databázy
Objekty pripojenia | |
názov | popis |
.Zavrieť() | Zatvorí nadviazané pripojenie k databáze |
.commit () | Potvrďte čakajúce transakcie s databázou |
.rollback () | Tento súhlas s transakciou sa vráti späť na začiatok čakajúcej transakcie |
Podržte kurzor () | Vytvorí sa objekt predstavujúci kurzor |
Objekty kurzora Python
1) .execute ()
Vykoná sa vyhlásenie Sequel uvedené v tejto funkcii.
syntax
execute(sql, (parameters))
príklad
import sqlite3con = sqlite3.connect("UserDB")cur = con.cursor()cur.execute(" select * from emp ")print cur.fetchone()
2) .executemany ()
Pre všetky uvedené parametre v sekvencii sa vykoná daný príkaz SQL
syntax
executemany(sql, (parameters))
príklad
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 ()
Načítať jeden riadok výstupu dotazu.
príklad
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 ()
Načítať konkrétnu skupinu riadkov výsledku dotazu. parameter určuje počet riadkov na volanie. Počet vyvolaných riadkov do značnej miery závisí od veľkosti poľa príslušného prvku kurzora. Preto sa musí pokus o vyvolanie počtu riadkov uvedených v parametri zadať rovnaký počet riadkov. Ak to nie je možné z dôvodu dostupných konkrétnych riadkov, môže sa vrátiť menej riadkov.
príklad
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) .fallall ()
Načítať všetky riadky dotazu. tieto riadky sa vracajú postupne. tu by výkon načítania mohol byť niekedy ovplyvnený načítaním poľa kurzora. Ak je veľkosť poľa kurzora extrémne veľká, potom bude čas potrebný na vytiahnutie riadkov pomerne vysoký.
príklad
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 (hodnota (, mód = 'relatívny'))
Prechádza kurzorom podľa uvedenej hodnoty režimu. ak je režim relatívny, uvedená hodnota sa považuje za ofset, v prípade, že je režim absolútny, potom je uvedená hodnota cieľovou pozíciou.
- Cursor.next (): Nasledujúci riadok sa vráti z aktuálne vykonávanej pozície príkazu pokračovania.
- Kurzor.-iter– (): Zostavuje kurzor vhodný pre iteračný protokol.
- Cursor.lastrowid (): Sem sa vracia ID riadku naposledy zmeneného riadku.
Operácie databázy Python
Kľúčové operácie akejkoľvek databázy vkladajú, odstraňujú, aktualizujú a vyberajú. všetky tieto operácie CRUD je možné zahrnúť aj prostredníctvom pythonu. V pythone sú povinné operácie ako otváranie a zatváranie databázových spojení vykonávané samotným pythonom. Pre všetky ostatné programovacie jazyky tieto typy operácií vykonáva špecificky vývojár. Nižšie uvedený príklad znázorňuje použitie týchto operácií.
príklad
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()
Hierarchia výnimiek Python Db
- Štandardná chyba
- Výstraha
- Chyba
- InterfaceError
- Chyba databázy
- DataError
- OperationalError
- IntegrityError
- Vnútorná chyba
- ProgrammingError
- NotSupportedError
Konštruktory zamerané na Python DB
- Dátum (rok, mesiac, deň): Vytvorí objekt s hodnotou dátumu v ňom
- Čas (hodina, minúta, sekunda): Vytvorí objekt s časovou hodnotou v ňom
- Časová pečiatka (rok, mesiac, deň, hodina, minúta, druhá): Zostavuje objekt s hodnotou časovej pečiatky
- Binárny reťazec: Konštruuje sa pythonový objekt schopný uchovávať binárne hodnoty
- Typ STRING: Opisuje všetky stĺpce, ktoré sú typom reťazca v databáze
- NUMBER type: Opisuje všetky stĺpce, ktoré sú typu number
- DATETIME type: Zmieňuje sa o všetkých stĺpcoch typu dátum a čas, ktoré sú v databáze
- ROWID type: Dosiahne stĺpec id riadku v databáze
Záver - pripojenie k databáze Python
Python sa jednoznačne vyznačuje jedným z najflexibilnejších programovacích rozhraní pre databázovo orientované programovanie. najmä klasifikovaný súbor python DB-API robí z komunikácie s DB efektívny proces bez ohľadu na akúkoľvek databázu.
Odporúčané články
Toto je sprievodca pripojením k databáze Python. Tu diskutujeme o kľúčových krokoch v pripojení k databáze a výhodách Pythonu pre programovanie databázy. Ďalšie informácie nájdete aj v nasledujúcich článkoch -
- Factorial v Pythone
- Operácie so súbormi Python
- Pre slučku v Pythone
- Zapuzdrenie v Pythone
- Sady Pythonu
- Funkcie Pythonu
- Faktorský program v JavaScripte
- Zapuzdrenie do JavaScriptu