Přehled programování databáze Python
Programový jazyk python nabízí rozsáhlá API pro programování databáze. Některé z klíčových databází podporovaných pythonem jsou uvedeny níže. V tomto tématu se budeme učit o Python Database Connection.
1. Oracle
2. MySQL
3. PostgreSQL
4. Teradata atd
Databáze je soubor předpřipravených informací, které lze bez námahy použít, spravovat, revidovat. Klíčové vlastnosti DB API jsou:
- Vytvořte připojení k databázi
- Práce na příkazech SQL a uložených procedurách
- Spojení lze uzavřít
Výhody Pythonu pro programování databáze
- Ve srovnání s jinými jazyky je python programování rychlejší a snadnější.
- V pythonu jsou povinné operace, jako je otevírání a zavírání připojení k databázi, prováděny samotným pythonem. U všech ostatních programovacích jazyků jsou tyto typy operací prováděny speciálně vývojářem.
- API databáze python podporují širokou škálu nastavení databáze, takže je úkolem připojení k databázím mnohem snazší proces.
Python DB API
Databáze | Python DB API |
MYSQL | MySQLdb |
PostgreSQL | psycopg, PyGresQL a pyPgSQL |
Věštec | dc_oracle2 a cx_oracle |
DB2 | Pydb2 |
Klíčové kroky v připojení k databázi
Z pohledu pythonu existují čtyři hlavní kroky v procesu databázového připojení pomocí pythonu. jsou jako níže,
1. Vytvoření objektu připojení
4. ukončení vytvořeného připojení
2. Pro přizpůsobení procesu čtení a zápisu deklarujte kurzor
3. Interakce s databází
Objekty připojení | |
název | Popis |
.zavřít() | Zavře navázané připojení k databázi |
.spáchat() | Potvrďte čekající transakce s databází |
.rollback () | Tento souhlas s transakcí se vrátí zpět na začátek čekající transakce |
.kurzor() | Je vytvořen objekt představující kurzor |
Objekty kurzoru Python
1) .execute ()
Je proveden příkaz Sequel uvedený v této funkci.
Syntax
execute(sql, (parameters))
Příklad
import sqlite3con = sqlite3.connect("UserDB")cur = con.cursor()cur.execute(" select * from emp ")print cur.fetchone()
2) .executemany ()
Pro všechny uvedené parametry v sekvenci se provede daný příkaz SQL
Syntax
executemany(sql, (parameters))
Pří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číst jeden řádek výstupu dotazu.
Pří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číst konkrétní sadu řádků výsledku dotazu. parametr určuje počet řádků na volání. Počet načtených řádků do značné míry závisí na velikosti pole příslušného prvku kurzoru. Stejně jako počet řádků uvedených v parametru při stejném počtu řádků, musí být proveden pokus o vyvolání. Pokud to není možné kvůli konkrétním dostupným řádkům, může být vráceno méně řádků.
Pří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) .fetchall ()
Načíst všechny řádky dotazu. tyto řádky jsou vráceny v sekvenci. zde by výkon načtení mohl být občas ovlivněn načtením pole kurzoru. Pokud je velikost pole kurzoru extrémně velká, pak bude také poměrně dlouhá doba potřebná k vytažení řádků.
Pří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 (, režim = 'relativní'))
Prochází kurzorem podle zmíněné hodnoty režimu. pokud je režim relativní, pak se uvedená hodnota považuje za ofset, v případě, že je režim absolutní, pak je uvedená hodnota cílovou polohou.
- Cursor.next (): Následující řádek se vrací z aktuálně prováděné pozice příkazu pokračování.
- Kurzor. – iter– (): Divadla kurzor vhodný pro iterační protokol.
- Cursor.lastrowid (): zde se vrací ID řádku posledního upraveného řádku.
Operace databáze Python
Klíčové operace jakékoli databáze vložit, odstranit, aktualizovat a vybrat. všechny tyto operace CRUD lze zahrnout také pomocí pythonu. V pythonu jsou povinné operace, jako je otevírání a zavírání připojení k databázi, prováděny samotným pythonem. U všech ostatních programovacích jazyků jsou tyto typy operací prováděny speciálně vývojářem. Níže uvedený příklad ukazuje použití těchto operací.
Pří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()
Hierarchie výjimek Python Db
- StandardError
- Varování
- Chyba
- InterfaceError
- Chyba databáze
- DataError
- OperationalError
- IntegrityError
- Interní chyba
- ProgrammingError
- NotSupportedError
Konstruktory zaměřené na Python DB
- Datum (rok, měsíc, den): Vytvoří objekt s hodnotou data v něm
- Čas (hodina, minuta, sekunda): Vytvoří objekt s časovou hodnotou v něm
- Časové razítko (rok, měsíc, den, hodina, minuta, sekunda): Vytvoří objekt s hodnotou časového razítka
- Binární (řetězec): Je konstruován pythonový objekt schopný uchovávat binární hodnoty
- Typ STRING: Popisuje všechny sloupce, které jsou typem řetězce v databázi
- NUMBER type: Popisuje všechny sloupce typu number
- DATETIME type: Zmíní se o všech sloupcích typu datum a čas přítomných v databázi
- Typ ROWID: Dosáhne sloupce ID řádku v databázi
Závěr - připojení databáze Python
Python určitě vyniká jako jedno z nejflexibilnějších programovacích rozhraní pro databázové programování. zejména díky utajované sadě pythonových DB-API je úkolem komunikace s DB efektivní proces bez ohledu na jakoukoli databázi.
Doporučené články
Toto je průvodce připojením k databázi Python. Zde diskutujeme o klíčových krocích v připojení databáze a výhodách Pythonu pro programování databáze. Další informace naleznete také v následujících článcích -
- Factorial v Pythonu
- Operace se soubory Python
- Pro smyčku v Pythonu
- Zapouzdření v Pythonu
- Pythonovy sady
- Funkce Pythonu
- Věcný program v JavaScriptu
- Zapouzdření do JavaScriptu