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

tietokannatPython DB -sovellusliittymät
MySQLMySQLdb
PostgreSQLpsycopg, PyGresQL ja pyPgSQL
Oraakkelidc_oracle2 ja cx_oracle
DB2Pydb2

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
NimiKuvaus
.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.

  1. Cursor.next (): Seuraava rivi palautetaan parhaillaan suorittavasta jatko-käskyn sijainnista.
  2. Kohdistin – iter– (): Näyttää kohdistimen, joka soveltuu iterointiprotokollaan.
  3. 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 -

  1. Tehtaalla Pythonissa
  2. Python-tiedostot
  3. Loopille Pythonissa
  4. Kapselointi Pythoniin
  5. Python-sarjat
  6. Python-ominaisuudet
  7. Factorial Program in JavaScript
  8. Kapselointi JavaScriptiin