Katsaus Python-tietokantaohjelmointiin
Python-ohjelman kieli tarjoaa laajat sovellusliittymät tietokantaohjelmointiin. Jotkut pythonin tukemista avaintietokannoista on annettu alla. Tässä aiheessa aiomme oppia Python-tietokantayhteydestä.
1. Oracle
2. MySQL
3. PostgreSQL
4. Teradata jne
Tietokanta on kokoelma ennalta järjestettyjä tietoja, joita voidaan vaivattomasti käyttää, hallita, uudistaa. DB API: n tärkeimmät ominaisuudet ovat,
- Luo tietokantayhteys
- Työskentele SQL-lauseiden ja tallennettujen menettelyjen kanssa
- Yhteys voidaan sulkea
Pythonin edut tietokantaohjelmoinnille
- Python-ohjelmointi on nopeampaa ja helppoa muihin kieliin verrattuna.
- Pythonin pakollisissa toimissa, kuten tietokantayhteyksien avaaminen ja sulkeminen, suorittaa itse python. Kaikille muille ohjelmointikieleille tämäntyyppiset toiminnot suorittaa erityisesti kehittäjä.
- Python-tietokantaohjelmiston sovellusliittymä tukee laajasti tietokannan asetuksia, joten se tekee tietokantoihin yhdistämisen tehtävästä paljon helpomman.
Python DB -sovellusliittymät
tietokannat | Python DB -sovellusliittymät |
MySQL | MySQLdb |
PostgreSQL | psycopg, PyGresQL ja pyPgSQL |
Oraakkeli | dc_oracle2 ja cx_oracle |
DB2 | Pydb2 |
Tietokantayhteyden keskeiset vaiheet
Python-näkökulmasta tietokantayhteyden muodostamisessa pythonilla on neljä suurta vaihetta. ne ovat kuten alla,
1. Yhteysobjektin luominen
4. luodun yhteyden katkaiseminen
2. Jotta lukemis- ja kirjoitusprosessi sopisi, ilmoita kohdistin
3. Tietokantojen vuorovaikutukset
Yhteysobjektit | |
Nimi | Kuvaus |
.kiinni() | Sulkee vakiintuneen yhteyden tietokantaan |
.tehdä() | Sitoa vireillä olevat tapahtumat tietokannan kanssa |
.rollback () | Tämä suostumus kauppaan palautuu odottavan tapahtuman alkuun |
.cursor () | Kohdistinta edustava objekti luodaan |
Python-kohdistinobjektit
1) .suorita ()
Tässä toiminnossa mainittu Sequel-käsky suoritetaan.
Syntaksi
execute(sql, (parameters))
esimerkki
import sqlite3con = sqlite3.connect("UserDB")cur = con.cursor()cur.execute(" select * from emp ")print cur.fetchone()
2) .executemany ()
Kaikille järjestyksessä luetelluille parametreille annettu SQL-käsky suoritetaan
Syntaksi
executemany(sql, (parameters))
esimerkki
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 ()
Hae yksi rivi kyselyulostuloa.
esimerkki
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 ()
Hae tietty kyselyrivirivi. parametri määrittelee rivien määrän puhelua kohti. Haettavien rivien lukumäärä riippuu suurelta osin kohdistimen elementtiryhmän koosta. Joten koska parametrissa ilmoitetulla rivien lukumäärällä on annettu sama rivimäärä, on yritettävä hakea. Jos tämä ei ole käytettävissä olevien tiettyjen rivien vuoksi mahdollista, vähemmän rivejä voidaan palauttaa.
esimerkki
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 ()
Hae kaikki kyselyrivit. nämä rivit palautetaan peräkkäin. tässä kohdistinryhmän haku voi joskus vaikuttaa haun suorituskykyyn. Kun kohdistinryhmän koko on erittäin suuri, rivien vetämiseen kuluva aika on myös suhteellisen suuri.
esimerkki
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 (arvo (, tila = 'suhteellinen'))
Vierittää kohdistinta mainitun moodiarvon mukaan. jos tila on suhteellinen, mainittua arvoa pidetään poikkeamana, jos tila on ehdoton, mainittu arvo on tavoiteasento.
- Cursor.next (): Seuraava rivi palautetaan parhaillaan suorittavasta jatko-käskyn sijainnista.
- Kohdistin – iter– (): Näyttää kohdistimen, joka soveltuu iterointiprotokollaan.
- Cursor.lastrowid (): Viimeksi muokatun rivin tunnus palautetaan tähän.
Python-tietokantatoiminnot
Minkä tahansa tietokannan lisäämis-, poistamis-, päivitys- ja valintatoiminnot. kaikki nämä CRUD-operaatiot voidaan olettaa myös pythonin kautta. Pythonin pakollisissa toimissa, kuten tietokantayhteyksien avaaminen ja sulkeminen, suorittaa itse python. Kaikille muille ohjelmointikieleille tämäntyyppiset toiminnot suorittaa erityisesti kehittäjä. Seuraava esimerkki kuvaa näiden toimintojen soveltamista.
esimerkki
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 -hierarkia
- StandardError
- Varoitus
- Virhe
- InterfaceError
- Tietokanta virhe
- DataError
- OperationalError
- IntegrityError
- Sisäinen virhe
- ProgrammingError
- NotSupportedError
Python DB -orientoidut rakentajat
- Päivämäärä (vuosi, kuukausi, päivä): Rakentaa objektin, jolla on päivämääräarvo
- Aika (tunti, minuutti, sekunti): Rakentaa objektin, jolla on aika-arvo siinä
- Aikaleima (vuosi, kuukausi, päivä, tunti, minuutti, sekunti): Rakentaa objektin, jolla on aikaleiman arvo
- Binaari (merkkijono): Konstruoidaan python-objekti, joka pystyy pitämään binaariarvoja
- STRING-tyyppi: kuvaa kaikki tietokannan merkkijonotyyppiset sarakkeet
- NUMEROTyyppi: kuvaa kaikki numerotyyppiset sarakkeet
- DATETIME-tyyppi: Mainitsee kaikki tietokannassa olevat päivämäärä- ja aikatyyppisarakkeet
- ROWID-tyyppi: Saavuttaa tietokannan rivin sarakkeen
Johtopäätös - Python-tietokantayhteys
Python erottuu ehdottomasti yhdestä joustavimmista ohjelmointirajapinnoista tietokantakeskeiseen ohjelmointiin. erityisesti luokiteltu python-DB-API-sarja tekee tehtävästä kommunikoida DB: n kanssa tehokkaan prosessin tietokannasta riippumatta.
Suositellut artikkelit
Tämä on opas Python-tietokantayhteyteen. Tässä keskustellaan tietokantayhteyden tärkeimmistä vaiheista ja Pythonin eduista tietokantaohjelmoinnille. Saatat myös katsoa seuraavia artikkeleita saadaksesi lisätietoja -
- Tehtaalla Pythonissa
- Python-tiedostot
- Loopille Pythonissa
- Kapselointi Pythoniin
- Python-sarjat
- Python-ominaisuudet
- Factorial Program in JavaScript
- Kapselointi JavaScriptiin